Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
virtual isUNICODE() { return ( false ); }
virtual isANSI() { return ( false ); }
Зачем нужно это знание? Важно только при открытии, дальше ни холодно ни жарко.
если это чистая виртуальная то лучше так и оформить - зачем false - лучше сразу вызывать ошибку
Какую ошибку :) исключений-то нет. Можно всунуть ASSERT(false) для порядку, это-то точно не помешает.
А PURE... ну как бы вариант, но зависимый от возвращаемого типа, уж лучше я ручками все напишу, некритично.
в ОПП такого не бывает
Зачем нужно это знание? Важно только при открытии, дальше ни холодно ни жарко.
Вся обработка должна идти в базовом классе - все методы будут практически идентичны - знание нужно для того, чтобы отличить ANSI от UNICODE в 3-4-х методах где эта обработка отличается,
а если Вы оставите всю обработку в производных классах - тогда нужно просто честно признать что это не ООП :)
тогда Вам virtual и не нужно вовсе :) и кода у вас будет в 4 раза больше ;)
тогда нужно просто честно признать что это не ООП :)
Нет, просто вам надо признать, что вы не понимаете почему это сделано так, а не иначе.
Не ясна причина почему Разработчики сэкономили на чистых виртуальных.
Нет, просто вам надо признать, что вы не понимаете почему это сделано так, а не иначе.
Признаю - не понимаю - можете пояснить смысл использования нескольких совершенно одинаковых функций?
void FileImpl::Init()
Например две такие одинаковые - и остальные тоже :)И еще - уберите в Ваших файлах ключевое слово - virtual - результат не изменится :)
Признаю - не понимаю - можете пояснить смысл использования нескольких совершенно одинаковых функций?
Неконстантные версии могут полностью наследоваться от константных, дублирования тогда бы не было.
Зато тогда пришлось бы открывать и тянуть за собой имплементацию, что по сути дало бы то же самое, что сейчас, только с дополнительной морокой и открытостями.
А сейчас юзеру достаточно подключить хедер с определением интерфейсов, а реализация полностью вшита в либу и может использоваться просто как ex5 даже без исходников, что было бы нереально, реализуй я ваше предложение.
И еще - уберите в Ваших файлах ключевое слово - virtual - результат не изменится :)
Написал сегодня тоже самое - только другими словами - может прислушаются к чаяньям народа :)
https://www.mql5.com/ru/forum/11/page107#comment_386576
Ничего себе это же экономия стольких дней если недель на создание своих приложении. Просто величайше и круто!
Скорее всего после обновлении что то пишет ошибку в этой строке.
2019.02.03 16:06:28.963 fileunlimitedtest compilation of 'C:------------------------------\MQL5\Libraries\TheXpert\ConstFileUnlimited.mq5' failed