Пробую применить typedef для функции класса выбивается ошибка pointer to this function type is not supported yet, пробовал инструкции выше но т.к. не показано для чего и нет комментариев ничего у меня не получилось.
Пробую применить typedef для функции класса выбивается ошибка pointer to this function type is not supported yet, пробовал инструкции выше но т.к. не показано для чего и нет комментариев ничего у меня не получилось.
Пробую применить typedef для функции класса выбивается ошибка pointer to this function type is not supported yet, пробовал инструкции выше но т.к. не показано для чего и нет комментариев ничего у меня не получилось.
Просто интересно: как Вы его планируете использовать?
Возникает вопрос если делать этого нельзя то почему в классе пишут функции которые принимают функции? Да и к тому же иногда возникает необходимость реализовать интерфейс и иногда не знаешь какую функцию вызвать.
Возникает вопрос если делать этого нельзя то почему в классе пишут функции которые принимают функции? Да и к тому же иногда возникает необходимость реализовать интерфейс и иногда не знаешь какую функцию вызвать.
В качестве параметра передаётся указатель на функцию. Я вижу с классами никто не разобрался как это делать. Мне также до сих пор непонятно зачем нужно возвращать указатель на класс что это даёт.
Вот интересные примеры но это не по моему вопросу
#property strictclass CStrategy;
typedefbool (*SignalFn)(CStrategy*);
// Global function definitionsbool IsBuySignal(CStrategy*ptr) { return ptr.IsBuySignal(); }
bool IsSellSignal(CStrategy*ptr) { return ptr.IsSellSignal(); }
// Create an abstract base classclass CStrategy
{
public:
virtualbool IsBuySignal(void)=0;
virtualbool IsSellSignal(void)=0;
};
// Derived classclass Strat1 : public CStrategy
{
public:
// Implement the required functionsbool IsBuySignal(void) { returntrue;}
bool IsSellSignal(void) { returntrue;}
};
voidOnStart()
{
// instantiate a class
Strat1 strat1;
// Global functions work as expected
SignalFn ptrSignalFn; // pointer to a signal function
ptrSignalFn = IsBuySignal;
if ( ptrSignalFn(&strat1) ) { Print("Is Buy"); }
}
Также в справочнике видел что-то похожее но по закрывал уже эти сайты т.к. руки болят да и работу нужно делать.
Как создать указатель на метод класса?
Нужно создать указатель на функцию _int и int_.
В mql4 что-то описано про указатели и классы здесь (https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) но нет никаких комментариев, не понятно для чего это и что оно делает. Без классов объявить указатель с помощью typedef не составляет труда, но хотелось бы разобраться как это работает в классах.Как создать указатель на метод класса?
Нужно создать указатель на функцию _int и int_.
В mql4 что-то описано про указатели и классы здесь (https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) но нет никаких комментариев, не понятно для чего это и что оно делает. Без классов объявить указатель с помощью typedef не составляет труда, но хотелось бы разобраться как это работает в классах.Нельзя
https://www.mql5.com/ru/docs/basis/types/casting#dynamic_cast
https://www.mql5.com/ru/docs/basis/types/casting#dynamic_cast
Не то. Человеку нужен указатель на метод класса, а не приведение к наследнику.
другого не дано - или процедурный стиль без разграничения доступа или ООП с контролем доступа и типов
ладно, не важно у автора всегда проблемы узкоспециализированные ;)
Как создать указатель на метод класса?
Нужно создать указатель на функцию _int и int_.
В mql4 что-то описано про указатели и классы здесь (https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) но нет никаких комментариев, не понятно для чего это и что оно делает. Без классов объявить указатель с помощью typedef не составляет труда, но хотелось бы разобраться как это работает в классах.Просто интересно: как Вы его планируете использовать?
Для чего нужно сохранять указатель на весь класс вот пример https://docs.mql4.com/ru/basis/types/this
Что с ним делать потом?
Нельзя
Возникает вопрос если делать этого нельзя то почему в классе пишут функции которые принимают функции? Да и к тому же иногда возникает необходимость реализовать интерфейс и иногда не знаешь какую функцию вызвать.
Возникает вопрос если делать этого нельзя то почему в классе пишут функции которые принимают функции? Да и к тому же иногда возникает необходимость реализовать интерфейс и иногда не знаешь какую функцию вызвать.
Это как?
Это как?
В качестве параметра передаётся указатель на функцию. Я вижу с классами никто не разобрался как это делать. Мне также до сих пор непонятно зачем нужно возвращать указатель на класс что это даёт.
Вот интересные примеры но это не по моему вопросу
Также в справочнике видел что-то похожее но по закрывал уже эти сайты т.к. руки болят да и работу нужно делать.