Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.192.95.161] |
|
Сообщ.
#1
,
|
|
|
Qraizer - это твой выход. Общественность в лице меня требует освещения вопроса! Не то, чтобы "есть и пить не могу", но вопрос уже не одного дня в году. Залепи, плс, научные изыскания - как можно реализовать!
|
Сообщ.
#2
,
|
|
|
Зачем, Majestio? У нас есть полноценное множественное наследование. При желании можно примешивать и интерфейсы (абстрактные классы) тоже. Д.с. в Плюсах они уже есть. А с применением шаблонов так и вовсе примеси в пролёте по спектру возможностей.
|
Сообщ.
#3
,
|
|
|
Т.е. ты считаешь. что для плюсов - это "лишняя" тема?
|
Сообщ.
#4
,
|
|
|
Почему же лишняя. Не лишняя. Просто у нас они уже есть.
Добавлено Вот пример с вики (убрал динамический полиморфизм за ненадобностью, у нас тут CRTP). Предположим, у нас есть класс struct Complex { Complex(int re, int im): re_(re), im_(im) { } bool operator==(const Complex& cmp) const { return cmp.re_ == this->re_ && cmp.im_ == this->im_; } // ... private: int re_, im_; }; template <typename T> struct AddNoEq { bool operator!=(const T &cmp) const { return !static_cast<const T*>(this)->operator==(cmp); } }; struct Complex: AddNoEq<Complex> Добавлено Понимаешь, это там, где нет множественного наследования реализаций, с примесями будет посложнее. Придётся заморачиваться интерфейсами, реализовывать агрегатами, делегировать им их функционал... Как обычно, задачи, сводимые к множественному наследованию реализаций, легко решаются ...хм, множественным наследованием реализаций. Они возникают нечасто, но когда возникают, а язык такого механизма не имеет, начинаются всякоразные творческие изыски. Добавлено Ну или да, поддерживать примеси на уровне языка. Только это ж половина решения, применение множественного наследования реализаций только лишь реализацией идиомы примесей ведь не ограничивается. |