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

fxsaber
15247
fxsaber  
Alexey Navoykov:

В С++ код обрабатывается компилятором строго сверху вниз, поэтому всё что сверху - уже инициализировано.  А к нижнему ты обратиться не можешь. Поэтому всё чётко.

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

Ilya Malev
12328
Ilya Malev  
Alexey Navoykov:

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

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

class A;
class B{A*a;};
class A{};
Alexey Navoykov
4472
Alexey Navoykov  
fxsaber:

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

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

Ilya Malev:

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

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

fxsaber
15247
fxsaber  
Alexey Navoykov:

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

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

Alexey Navoykov
4472
Alexey Navoykov  
fxsaber:

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

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

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

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

Alexey Navoykov
4472
Alexey Navoykov  
Ilya Malev:

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

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

Ilya Malev
12328
Ilya Malev  
Alexey Navoykov:

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

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

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

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

Alexey Navoykov
4472
Alexey Navoykov  
fxsaber:

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

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