Не может быть, что бы такое раньше работало.
В MyList.Add() нужно передавать указатель на CObject. Значит MyClass должен быть дочерним от CObject, и его объект должен создаваться через new использовать GetPointer(Instance).
Спасибо! Вот так работает (поправил с учетом последующих комментариев):
//+------------------------------------------------------------------+ #include <Arrays\List.mqh> CList *MyList=new CList; class MyClass : public CObject { public: MyClass(void); }; MyClass::MyClass(void) { return; } void OnStart() { MyClass *Instance=new MyClass; MyList.Add(Instance); } //+------------------------------------------------------------------+
axmed0207:
Спасибо! Вот так работает:
Спасибо! Вот так работает:
Мне кажется, в последней строке GetPointer - лишний. И, строго говоря, должна быть ошибка.
Вы создаете по new объект типа MyClass, и указатель на него получаете в переменной Instance.
Это УЖЕ указатель.
А вы функцией GetPointer - получаете "указатель на указатель" - это неверно, даже если компилятор "съел" такую конструкцию.
Просто передавайте в Add непосредственно Instance:
MyList.Add(Instance);
axmed0207:
Спасибо! Вот так работает:
Спасибо! Вот так работает:
Так писали, что билд не при чем ))
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Компилятор выдает ошибку на выражении "MyList.Add(Instance);" - "'Instance' - parameter conversion not allowed".