Что не так с interface? - вопрос к разработчикаам

 

Навеяно тем, что вчера один форумчанин заявил, что в MQL5 нет интерфейсов. Но я-то помню, что их ввели где-то с год назад.

Полез в справку редактора, в меню и правда нет. Но по Указателю открывается одинокая страничка, которая болтается, ни с чем не связанная. Скачал .chm из Документации - та же картина.

В web-документации вообще не нашел.

Вопрос к разработчикам - они еще не доделаны или как, можно ли их использовать?

PS простенький пример из справки работает

 
Alexey Volchanskiy:

Навеяно тем, что вчера один форумчанин заявил, что в MQL5 нет интерфейсов. Но я-то помню, что их ввели где-то с год назад.

Полез в справку редактора, в меню и правда нет. Но по Указателю открывается одинокая страничка, которая болтается, ни с чем не связанная. Скачал .chm из Документации - та же картина.

В web-документации вообще не нашел.

Вопрос к разработчикам - они еще не доделаны или как, можно ли их использовать?

PS простенький пример из справки работает

Ага! Это у нас такая справка замечательная! Запихнули их в Справочник MQL5Основы языкаТипы данныхСтруктуры, классы и интерфейсы и все, в разделе ООП о них ни слова.

Вот чисто случайно нашел. Но в о встроенной справке все равно одиноко болтающаяся страница, хотя в Типы данных упоминаются.

Короче, это место справки сделано через одно место.

----------

Кстати, то же и с union

 

Алексей, а не могли Вы поделиться, в каком случае планируется использовать интерфейсы?

Для себя я, к сожалению, пришёл к тому что, поскольку множественная реализация интерфейсов не дозволена на текущий момент, то нет особого смысла использовать их. Я имею в виду нечто такое:

interface IA
{
   virtual void MethodA() = 0;
};

interface IB
{
   virtual void MethodB() = 0;
};

interface IC
{
   virtual void MethodC() = 0;
};

class CMyClass : public IA, IB, IC
{
   public:
      virtual void MethodA() override
      {
         //...
      }
      
      virtual void MethodB() override
      {
         //...
      }
      
      virtual void MethodC() override
      {
         //...
      }
};
 
Sergey Eremin:

Для себя я, к сожалению, пришёл к тому что, поскольку множественная реализация интерфейсов не дозволена на текущий момент, то нет особого смысла использовать их.

да, недопилили чуток
 

Я же написал в первом посте причину: Навеяно тем, что вчера один форумчанин заявил, что в MQL5 нет интерфейсов. Но я-то помню, что их ввели где-то с год назад.

Решил проверить и обнаружил глюки со справкой. Я пока не использую.

А чт выдает при множественном - ошику компиляции? Воще основная цель интерфейсов как раз во множественном.

 
TheXpert:
да, недопилили чуток

И зачем тогда они нужны?

 
Alexey Volchanskiy:

Я же написал в первом посте причину: Навеяно тем, что вчера один форумчанин заявил, что в MQL5 нет интерфейсов. Но я-то помню, что их ввели где-то с год назад.

Решил проверить и обнаружил глюки со справкой. Я пока не использую.

А чт выдает при множественном - ошику компиляции? Воще основная цель интерфейсов как раз во множественном.

Ох, извиняюсь, невнимательно прочитал, видимо (по поводу причины). Подумалось, что есть конкретный кейс применения...

Ага, её родимую:


 
Sergey Eremin:

Ох, извиняюсь, невнимательно прочитал, видимо (по поводу причины). Подумалось, что есть конкретный кейс применения...

Ага, её родимую:


Ясненько, ну и пусть себе лежат, хотя мне сейчас множественное особо и не нужно. На плюсах давно использовали, но там был большой проект, классы спецом затачивались под множественное.

 
Alexey Volchanskiy:

И зачем тогда они нужны?

надеюсь допилят, пока только для красоты.
 
TheXpert:
надеюсь допилят, пока только для красоты.

Шоб было ))

 
Alexey Volchanskiy:

Шоб было ))

ну нет, их же запилили после разговоров про множественное наследование. и судя по виду решили пойти путем C#, просто эээ не дошли до конца пока. думаю допилят.
Причина обращения: