我有一个Collection
旨在存储不同类型对象的类,但是我想调用这些类共享的特定方法名称(例如ToString()
)。
这是我的尝试:
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()
为每个存储的对象调用方法?