Скачать MetaTrader 5

Вызов конструктора предка

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Владислав
646
Владислав  

в новом билде перестал компилироваться советник

ругается на явный вызов конструктора предка в конструкторе наследника

пример крнструктор класса TMNK наследника TSymbol

 void TMNK()
  {
  TSymbol::TSymbol();

  iTradeLong=true;

......

  }

как правильно писать конструктор наследника?

Dimitar Manov
2918
Dimitar Manov  
arnautov:

в новом билде перестал компилироваться советник

ругается на явный вызов конструктора предка в конструкторе наследника

пример крнструктор класса TMNK наследника TSymbol

 void TMNK()
  {
  TSymbol::TSymbol();

  iTradeLong=true;

......

  }

как правильно писать конструктор наследника?

6.   MQL5: Добавлена ошибка "explicit constructor call is not allowed" при попытке явного вызова конструктора объекта.

 

https://www.mql5.com/ru/forum/23/page8 

Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
Konstantin Gruzdev
16976
Konstantin Gruzdev  
arnautov:

как правильно писать конструктор наследника?

Как вызываются при наследовании конструкторы написано здесь: https://www.mql5.com/ru/docs/basis/oop/inheritance
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Наследование
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Наследование
  • www.mql5.com
Основы языка / Объектно-ориентированное программирование / Наследование - Документация по MQL5
Владислав
646
Владислав  
Lizar:
Как вызываются при наследовании конструкторы написано здесь: https://www.mql5.com/ru/docs/basis/oop/inheritance

----

Необходимо отметить, что при создании объекта сначала вызывается конструктор базового класса, затем конструктор производного класса. При уничтожении объекта сначала вызывается деструктор

производного класса, а затем деструктор базового класса.

----

Т.е. конструктор предка вызывается автоматичеки?

Ilyas
1215
Ilyas  
arnautov:

----

Необходимо отметить, что при создании объекта сначала вызывается конструктор базового класса, затем конструктор производного класса. При уничтожении объекта сначала вызывается деструктор

производного класса, а затем деструктор базового класса.

----

Т.е. конструктор предка вызывается автоматичеки?

Да, конструкторы и деструкторы вызываются автоматически для предков и членов класса/структуры
Dmitriy Skub
12485
Dmitriy Skub  
mql5:
Да, конструкторы и деструкторы вызываются автоматически для предков и членов класса/структуры
А планируется ли добавить конструктор с параметрами? Или?
Alexandr Gavrilin
42357
Alexandr Gavrilin  
поддерживаю, было бы неплохо иметь возможность вызывать конструкторы предка с параметрами самостоятельно, либо сделайте вызов по умолчанию таких конструкторов если сделан конструктор с параметрами у наследуемого класса,а то конструктор предка с параметрами нельзя вызывать!
Garynych
83
Garynych  
Т.е за 4 года в этом плане подвижек не произошло? Если мне нужен конструктор с параметрами из предка, то его надо тупо дублировать у потомка?
Комбинатор
16928
Комбинатор  
Garynych:
Т.е за 4 года в этом плане подвижек не произошло? Если мне нужен конструктор с параметрами из предка, то его надо тупо дублировать у потомка?
Все с конструкторами нормально.
Vasiliy Sokolov
30809
Vasiliy Sokolov  
Garynych:
Т.е за 4 года в этом плане подвижек не произошло? Если мне нужен конструктор с параметрами из предка, то его надо тупо дублировать у потомка?

Все прекрасно работает. Нет никаких проблем вызвать базовый параметрический конструктор из производного класса:

class CBase
{
   public:
      CBase(int a);
};

class CChild : public CBase
{
   public:
      CChild() : CBase(5){;}
};
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий