我有一個Collection
類,它旨在存儲不同類型的對象,但是我想調用這些類共享的特定方法名稱(例如ToString()
)。如何在MQL中調用未知類的方法?
這裏是我的嘗試:
class Collection {
public:
void *data[];
void Collection() {}
void ~Collection() {
for (int i = 0; i < ArraySize(data); i++) {
if (CheckPointer(data[i]) == POINTER_DYNAMIC) delete data[i];
}
}
void *Add(void *_object) {
uint _size = ArraySize(data);
ArrayResize(data, _size + 1, 100);
data[_size] = _object;
return _object;
}
string ToString(string _dlm = ",") {
string _out = "";
for (int i = 0; i < ArraySize(data); i++) {
if (CheckPointer(data[i]) == POINTER_DYNAMIC) {
_out += ((void *) data[i]).ToString(); // @fixme: Syntax error.
}
}
return _out;
}
};
但是使用((void *) data[i]).ToString()
語法失敗:
'的ToString' - 沒有定義Collection.mqh
我怎樣才能調用成員函數每個存儲對象有一個ToString()
方法?