Встречайте учебник «Программирование на MQL5 для трейдеров» - страница 4

 
Sergey Gridnev #:
Вот и написали бы учебник, заодно поведали бы сообществу кто такой этот ваш "васик".

Вы наверное слишком молоды чтобы знать это. Basic если читать вперемешку латиницу и кириллицу, то получается именно васик…

 
Alexey Viktorov #:

Вы наверное слишком молоды чтобы знать это. Basic если читать вперемешку латиницу и кириллицу, то получается именно васик…

Мне 52 и с Бейсика я начинал. Тогда ещё "Радио-86" самоделка в ходу была. И то, что "васик" это Basic, естественно, мне понятно. Но мне кажется, что подобные коверконья несмешны и неуместны, когда речь зашла об ошибках, допущенных в учебнике по программированию.
 
Break, горячие финские парни
 

может просто в файлик mql5_russian.chm и mql4_russian.chm добавить учебник и делов то, "все в одном".... pdf-ы там какие-то придумывать ))

на мой взгляд разжевано и понятно было у сергея коваленко в хэлпе

 
ruslan #:
может просто в файлик mql5_russian.chm и mql4_russian.chm добавить учебник и делов то, "все в одном".... pdf-ы там какие-то придумывать ))

втртли хорошая идея, учебник, это учебник, справка отдельное

 
lynxntech #:

втртли хорошая идея, учебник, это учебник, справка отдельное

оно то видишь, по ссылкам внутри файла на функции ссылатеся быстрее  и переключаться между справками не надо ...
 
ruslan #:
он он то видишь, по ссылкам внутри файла на функции ссылатеся быстрее  и переключаться между справками не надо ...

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

единицы.

 
A100 #:

Так нужно делать? Ваш код в сокращенной форме:

Лишний раз убедился в непрофессионализме

Для начинающих пользователей - поясню в чем принципиальность ошибки: функция f() скрытно изменила константность объекта помимо его воли

Проще говоря: на вход объект пришел как const, а на выходе получили как не const

template<typename T>
T *f( const T *n ) { return (T *)n; }
class A {
public:
    void g1() const { Print("Константность сохранена"); }
    void g2()       { Print("Константность нарушена" ); }
};
void OnStart()
{
    const A *a = new A;//Результат:
       a  .g1(); //(1)//Константность сохранена
       a  .g2(); //(2)//Error: 'g2' - call non-const method for constant object
    f( a ).g1(); //(3)//Константность сохранена
    f( a ).g2(); //(4)//Константность нарушена
    delete a;
}

В (2) случае компилятор стоит на страже, и при попытке вызвать g2() выдает ошибку

Во (4) случае появилась неграмотная функция f(), против которой компилятор бессилен и вынужден вызвать g2()

 
A100 #:

Для начинающих пользователей - поясню в чем принципиальность ошибки: функция f() скрытно изменила будущую целостность объекта помимо воли его владельца. Проще говоря: на вход объект пришел как const, а на выходе получили как не const

В (2) случае компилятор стоит на страже, и при попытке вызвать g2() выдает ошибку

Во (4) случае появилась неграмотная функция f(), против которой компилятор бессилен и вызывает g2()

для начинающих вообще template не нужно, у меня достаточно большой код и нет извращений с шаблонами

самое большое с template это перевод пунктов был, даже не представляю что у вас за энтузиазм так разбивать алгоритм

 
Sergey Gridnev #:
Но в учебнике же сказано, что так не работает.

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

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