Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй программу в Маркете и продавай ее миллионам трейдеров!
Владислав
646
Владислав 2010.09.23 20:23 

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

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

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

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

  iTradeLong=true;

......

  }

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

Dimitar Manov
2752
Dimitar Manov 2010.09.23 20:34  
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
14026
Konstantin Gruzdev 2010.09.23 21:05  
arnautov:

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

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

----

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

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

----

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

Ilyas
1206
Ilyas 2010.09.23 21:21  
arnautov:

----

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

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

----

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

Да, конструкторы и деструкторы вызываются автоматически для предков и членов класса/структуры
Dmitriy Skub
11636
Dmitriy Skub 2010.09.24 12:19  
mql5:
Да, конструкторы и деструкторы вызываются автоматически для предков и членов класса/структуры
А планируется ли добавить конструктор с параметрами? Или?
Alexandr Gavrilin
31679
Alexandr Gavrilin 2014.02.19 18:52  
поддерживаю, было бы неплохо иметь возможность вызывать конструкторы предка с параметрами самостоятельно, либо сделайте вызов по умолчанию таких конструкторов если сделан конструктор с параметрами у наследуемого класса,а то конструктор предка с параметрами нельзя вызывать!
Garynych
81
Garynych 2014.02.20 23:19  
Т.е за 4 года в этом плане подвижек не произошло? Если мне нужен конструктор с параметрами из предка, то его надо тупо дублировать у потомка?
Комбинатор
15932
Комбинатор 2014.02.21 07:49  
Garynych:
Т.е за 4 года в этом плане подвижек не произошло? Если мне нужен конструктор с параметрами из предка, то его надо тупо дублировать у потомка?
Все с конструкторами нормально.
Vasiliy Sokolov
21794
Vasiliy Sokolov 2014.02.21 08:12  
Garynych:
Т.е за 4 года в этом плане подвижек не произошло? Если мне нужен конструктор с параметрами из предка, то его надо тупо дублировать у потомка?

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

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

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