Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дельное замечание. Было бы здОрово, если бы аргументы подкреплялись кодом, а не просто так, бла-бла-бла.
Подкрепляю.
Вот мой класс CMyObject:
В конце также определяется макрос CONVERT_OBJECT_WITH_CHECK, который для DEBUG-версии осуществляет дополнительную проверку преобразования указателей, исходя из типа объекта
Подкрепляю.
Вот мой класс CMyObject:
В конце также определяется макрос CONVERT_OBJECT_WITH_CHECK, который для DEBUG-версии осуществляет дополнительную проверку преобразования указателей, исходя из типа объекта
Красиво. Конечно дело вкуса. Но, исходя из MQL-синтаксиса, написал бы так:
Красиво. Конечно дело вкуса. Но, исходя из MQL-синтаксиса, написал бы так:
Да, верно.
Но, это мой старперский "стиль программирования" (привет, Волчанский с его недавней веткой).
У меня все перечисления - начинаются с E, и потом "горбатой" нотацией - название. А сами типы в перечислении - начинаются с сокращения (до четырех букв) типа перечисления.
Соответственно, раз перечисление EMyObjectType - то все значения начинаются с MOT_
Ты идиот? )) я не сказал ни одного плохого слова про F#. Научись читать и понимать что тебе пишут перед тем как постить свои тупые каменты
Если сравнивать ООП с ФП, то сравнивать имеет смысл с чистым ФП языком, т.е. хаскелем. F# уже так себе, а питон и R совсем нет. Вот что я имел в виду. А то так можно договориться до того что С++ тоже к ФП относится.Троль ты безграмотный. Для справки все перечисленные языки в той или иной мере функциональные. Иди и поучи предметную область. Вопрос задавался что бы понять в какой системе координат находится Andrei Возможно он практикует один из языков ФП, поэтому и перечисление было очень общим.
Абаснуй ?
Что должно быть по твоему в "базовом объекте" ?
Лично у меня почти ВСЕ объекты во всех проектах - наследуются от класса CMyObject: public CObject, (в моем объекте добавляются еще два поля - название класса и ID экземпляра), и неоднократно убеждался в том, что мне функциональность CObject::Compare() - оказывалась весьма и весьма нужной. Пару раз пригодились и указатели списка.
У CObject одна задача - обеспечить контроль типов. И с этим он шатко-валко справляется. Методы вроде Next(), Prev() и т.д. это для очень специализированных коллекций. Им не место в CObject. Тоже касается методов Save и Load. По-хорошему и Comparer'а в нем не должно быть, но без интерфейсов это единственное решение.
Что касается метода Type() то он не обеспечивает строгую типизацию т.к. возвращает обычное число. Можно убедится на примере твоих собственных кодов. Ты определяешь новый метод GetType(), который возвращает тип в виде перечисления. И действительно по другому никак, сам так делаю. Поэтому выходит стандартный CObject приходится дописывать, а это неправильно.
Продолжу по поводу CObject::Compare().
Есть у меня такой объект CFactoryBalanceResultSeries - это серия с результатами баланса со ссылкой на объект-фабрику эксперта. Фактически, это кривая баланса на истории, со ссылкой на эксперт, который ее торговал.
Так вот, у меня есть скрипт, на котором я сравниваю эти самые серии баланса.
Пока серий только две - их сравнить легко. А вот когда их десяток - уже на глаз - хрен сравнишь, надо более формальное сравнение.
И, как раз для автоматизации этого процесса - надо было написать функцию, сортирующую эти самые серии. Тут как раз мне и пригодилось то, что класс CFactoryBalanceResultSeries - это наследник от CObject, c его функцией сравнения. Переопределяем эту функцию - и имеем готовую возможность сортировки серий.
У меня эта функция выглядит так:
То есть, в зависимости от типа сортировки - мы выбираем нужную функцию сравнения, которая и используется в общей функции сортировки.
Для примера, если мы хотим отсортировать серии баланса по части последнего просада от максимума, то будут использовать следующие функции:
Продолжу по поводу CObject::Compare().
Из свежего
Имхо, не очень красиво.
Можно использовать указатель на функцию.
Да, верно.
Но, это мой старперский "стиль программирования" (привет, Волчанский с его недавней веткой).
У меня все перечисления - начинаются с E, и потом "горбатой" нотацией - название. А сами типы в перечислении - начинаются с сокращения (до четырех букв) типа перечисления.
Соответственно, раз перечисление EMyObjectType - то все значения начинаются с MOT_
Да, у меня так же перечисления.
ЗЫ: Только сейчас добрался до компа. Как и ожидалось, ветка быстренько скатилась во флуд )) Попробую попозже завершить рассказ про виртуальные функции.. Надо назвать этот форум так : чат-форум Бла-Бла-Бла ))
Прочитал все, какие у всех разные интересы...Я вот сейчас переделываю класс для выставления и управления виртуальной сеткой, мне это надо.