Пролистал документацию -- не увидел.
____________________
Нашел. Там же, где и раньше, без описалова.
Напомню, что для классов MQL5 необходим механизм получения указателя объекта на себя, иначе не получится написать ни одной мало-мальски серьезной вещи, используя именно ООП.
В завершателе есть this, и вот такой код работает, печатая во вкладке Experts "Yes" и "No":
class A
{
public:
void f() { Print("Yes"); }
void g() { Print("No"); }
A() { this.f(); }
~A() { this.g(); }
};
/******************************************************************************/
int OnInit()
{
A a;
return(0);
}
В завершателе есть this, и вот такой код работает, печатая во вкладке Experts "Yes" и "No":
Хорошо, задам вопрос по-другому: есть ли возможность получить указатель на уже созданный экземпляр класса?
Хорошо, задам вопрос по-другому: есть ли возможность получить указатель на уже созданный экземпляр класса?
Поноценного указателя на данный момент нет - вводится.
Сейчас в можете передать объект в функцию в качестве указателя, но такой указатель будет валидным только внутри этого вызова
CObject *ExtPtr=NULL;
void func(CObject *obj)
{
ExtPtr=obj;
//--- после выхода из функции func ExtPtr будет битым указателем
//--- и доступ к нему приведёт к критической ошибке
}
//--- передать как указатель можно так
CObject o;
func(o);
//--- или так
CObject::CObject()
{
func(this);
}
Полноценного указателя на данный момент нет - вводится.
Всмысле со всеми свойствами, кроме арифметических? Радует.
Сейчас в можете передать объект в функцию в качестве указателя, но такой указатель будет валидным только внутри этого вызова
Примерно этого я и хотел, вот только время жизни указателя не катит. Совсем.
Да и хотелось бы вдобавок все-таки что-нибудь типа так:
CObject* CObject::Self()Понимаю, что это небезопасно, но другой альтернативы вы не оставляете -- нормальных конструкторов и перегрузки операторов нет. Т.е. умный указатель самому написать не получится. Увы.
{
return this;
}
- www.mql5.com
Всмысле со всеми свойствами, кроме арифметических? Радует.
Примерно этого я и хотел, вот только время жизни указателя не катит. Совсем.
Да и хотелось бы вдобавок все-таки что-нибудь типа так:
Понимаю, что это небезопасно, но другой альтернативы вы не оставляете -- нормальных конструкторов и перегрузки операторов нет. Т.е. умный указатель самому написать не получится. Увы.Да, арифметика указателей не планируется, всё остальное будет
Спасибо, будем ждать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пролистал документацию -- не увидел.
____________________
Нашел. Там же, где и раньше, без описалова.
Напомню, что для классов MQL5 необходим механизм получения указателя объекта на себя, иначе не получится написать ни одной мало-мальски серьезной вещи, используя именно ООП.