Если ваш вопрос подразумевает множественное наследование от интерфейсов, то пока отложено на неопределённый срок.
Дело в том, что интерфейсы не надо наследовать. Их надо реализовывать. Класс должен иметь возможность реализовать любое количество интерфейсов. При этом класс может быть наследником другого класса, к интерфейсам наследование не должно иметь отношение.
Требуется из метода класса Y вызвать метод m1() другого объекта класса X.
Напрямую не получается - ошибка компилятора. Получается в обход, через костыль _m1().
А можно как-то без костылей, красивенько?
class X
{
protected:
void m1() {}
void _m1(X &p) {p.m1();}
};
class Y: public X
{
protected:
void m2()
{
X x;
//x.m1(); 'X::m1' - cannot access protected member function
_m1(x); //ОК
}
};
Требуется из метода класса Y вызвать метод m1() другого объекта класса X.
Напрямую не получается - ошибка компилятора. Получается в обход, через костыль _m1().
А можно как-то без костылей, красивенько?
а просто не используйте "protected" вовсе. Массы языков и систем обходятся и "пациент жив"
в MQL (за отсутствием библиотек/модулей и разделений на интерфейс/имплемент) он всё равно смысла не имеет и разделение на "публичный"/"приватный"/"защищённый" сугубо дань традиции от плюсов
в b3446 проблемы с вызовом метода по полному имени, Переменная.ИМЯ_КЛАССА::метод():
Причем, вызов "this.A::f()" из B::f3() компилируется без ошибок, то он же внутри A::f2() не компилируется!
class A
{
public:
void f() {}
void f2()
{
A a;
this.A::f(); // 'A' is not a class, struct or union
a.A::f(); // 'A' is not a class, struct or union
}
};
class B: public A
{
public:
void f3()
{
A::f(); //OKthis.A::f(); //OK
}
};
voidOnStart()
{
A a;
a.A::f(); // 'A' is not a class, struct or union
}
У меня несколько терминалов с включенным советником на одном компьютере и, непонятно почему, некоторые советники работают, а некоторые нет. Все включено правильно, никаких ошибок в журнале не видно, но при этом в одном терминале советник торгует, а во втором нет. Подскажите в чем проблема?
Здравствуйте, у меня вопрос, в прошлом году в декабре я покупал индикатор, здесь, в маркете, и было 5 активаций,так вот одну я использовал, осталось 4, и индикатор удалили, и что теперь? то есть покупай на маркете что-то, его удаляют и все? ладно я купил за 88 $ но и это деньги, но как насчет продуктов которые стоят сотни , или даже тысячи $ ? индикатор назывался - <...>
Если ваш вопрос подразумевает множественное наследование от интерфейсов, то пока отложено на неопределённый срок.
Подскажите, пожалуйста:
Требуется из метода класса Y вызвать метод m1() другого объекта класса X.
Напрямую не получается - ошибка компилятора. Получается в обход, через костыль _m1().
А можно как-то без костылей, красивенько?
Здравствуйте! Вопрос такой, будет ли советник работать на центовом счете или нужно какие-то дополнительные настройки внести?
все зависит от алгоритма. Если говорить о чем-то абстрактном, то скорее да, нежели - нет.
Подскажите, пожалуйста:
Требуется из метода класса Y вызвать метод m1() другого объекта класса X.
Напрямую не получается - ошибка компилятора. Получается в обход, через костыль _m1().
А можно как-то без костылей, красивенько?
а просто не используйте "protected" вовсе. Массы языков и систем обходятся и "пациент жив"
в MQL (за отсутствием библиотек/модулей и разделений на интерфейс/имплемент) он всё равно смысла не имеет и разделение на "публичный"/"приватный"/"защищённый" сугубо дань традиции от плюсов
Уважаемые разработчики!
в b3446 проблемы с вызовом метода по полному имени, Переменная.ИМЯ_КЛАССА::метод():
Причем, вызов "this.A::f()" из B::f3() компилируется без ошибок, то он же внутри A::f2() не компилируется!
все зависит от алгоритма. Если говорить о чем-то абстрактном, то скорее да, нежели - нет.а
а подскажите пожалуйста как проверить ? как узнать точно работает ли советник на центовом счете и если нет, то как это исправить. Спасибо!
У меня несколько терминалов с включенным советником на одном компьютере и, непонятно почему, некоторые советники работают, а некоторые нет. Все включено правильно, никаких ошибок в журнале не видно, но при этом в одном терминале советник торгует, а во втором нет. Подскажите в чем проблема?
при создании кастомного символа с префиксом TESTER_EURUSD создаётся базовая валюта TES, валюта прибыли TER, и не меняется. и не работает в тестере.
это специально?
<...>