Особенности языка mql5, тонкости и приёмы работы - страница 119

 
Alexey Navoykov:

А к нижнему ты обратиться не можешь. Поэтому всё чётко.

Только пожалуйста с возможностью все-таки классы-структуры объявлять заранее :)

class A;
class B{A*a;};
class A{};
 
fxsaber:

Гибкости меньше.

Гибкость - это нарушение порядка выполнения алгоритма? )

Ilya Malev:

Только пожалуйста с возможностью все-таки классы-структуры объявлять заранее :)

Ну так это ж не противоречит логике. Точно также как и предварительное объявление функции.  Если что-то объявлено ранее, значит оно и инициализироваться будет ранее.  Всё логично увязано.

 
Alexey Navoykov:

Гибкость - это нарушение порядка выполнения алгоритма? )

Сейчас OnTick можно вызвать из любого места программы.

 
fxsaber:

Сейчас OnTick можно вызвать из любого места программы.

Ну если есть в этом потребность, то можно и в C++ объявить  void OnTick(); в самом начале.  Но вообще порядок объявления функций - это дополнительный способ контроля правильности кода.  Вот если допустим у тебя в каком-то подключаемом инклуднике случайно окажется вызов OnTick() или ещё хуже - OnInit()  - разве это хорошо?  Библиотеки не должны видеть твой рабочий код.
 
Alexey Navoykov:

Ну так это ж не противоречит логике. Точно также как и предварительное объявление функции.  Если что-то объявлено ранее, значит оно и инициализироваться будет ранее.  Всё логично увязано.

Это может быть противоречит Вашей логике, но ни на секунду не противоречит общепринятой. Потому что к моменту начала выполнения кода инициализировано будет гарантированно все.

 
Ilya Malev:

Это может быть противоречит Вашей логике, но ни на секунду не противоречит общепринятой. Потому что к моменту начала выполнения кода инициализировано будет гарантированно все.

Вы похоже невнимательно прочитали мой пост. Там сказано: НЕ противоречит )

 
Alexey Navoykov:

Вы похоже невнимательно прочитали мой пост. Там сказано: НЕ противоречит )

Все верно, извиняюсь, бывает.

 
Alexey Navoykov:
Ну если есть в этом потребность, то можно и в C++ объявить  void OnTick(); в самом начале.  Но вообще порядок объявления функций - это дополнительный способ контроля правильности кода.  Вот если допустим у тебя в каком-то подключаемом инклуднике случайно окажется вызов OnTick() или ещё хуже - OnInit()  - разве это хорошо?  Библиотеки не должны видеть твой рабочий код.

Что делать при подключении библиотек, каждая из которых подключает внутри себя одинаковые библиотеки?

 
fxsaber:

Что делать при подключении библиотек, каждая из которых подключает внутри себя одинаковые библиотеки?

Так а проблема в чём?
 
fxsaber:

Что делать при подключении библиотек, каждая из которых подключает внутри себя одинаковые библиотеки?

#ifndef MQL_TOOLS_H
#define MQL_TOOLS_H

#endif

странно что директивы ввели а сами не используют

Причина обращения: