OnTick() не работает в экземпляре класса? - страница 5

 
Алексей Тарабанов:

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

нет, это инициализация статической переменной

собственно вопрос в том, почему если убрать эту строчку, то не будет работать код, да и предупреждений компилятора об отсутствии инициализации статика то же не будут появляться

 
Igor Makanu:

нет, это инициализация статической переменной

собственно вопрос в том, почему если убрать эту строчку, то не будет работать код, да и предупреждений компилятора об отсутствии инициализации статика то же не будут появляться

Ты очень хороший программист, но совсем хреновый аналитик

 
Igor Makanu:

зачем так писать:

static const DELETE_BASE BASE::DeleteBase;

Это создание объекта. В конце выполнения программы будет вызван его деструктор.

 
fxsaber:

Это создание объекта. В конце выполнения программы будет вызван его деструктор.

Спасибо, буду знать


гуглил, случайно попал  "Вложенные классы... Зачем?"  https://rsdn.org/forum/cpp/4243140.all 

довольно интересная возможность из класса_в_классе получать доступ к закрытым полям класса, так сказать в копилку знаний

ЗЫ: возможно такой способ (вложения в структуру/класс) позволит проинициализировать константные поля структуры, насколько я понимаю метод "класса_в_классе" - таким образом мы закрываем внутри namespace класса контейнер с функциями, думаю и статики будут прекрасно работать, единственно нужно проверить sizeof() такой структуры - вдруг статики поля копируются, тогда лишний расход памяти

 
Igor Makanu:

эта задача решена, вот универсальное решение https://www.mql5.com/ru/forum/85652/page16#comment_12346740

наследуйтесь от CObject и можете работать со списками без проблем

задача как раз обратная - не очищать при выходе из локальной области видимости указатели на обьект, НО очищать массивы указателей при окончании программы

...

Именно об этом я и писал. Про локальную область видимости я даже близко не затрагивал :)