Здравствуйте, гость ( Вход | Регистрация )
|
Litkevich Yuriy |
14.9.2018, 7:50
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Несколько раз, при написании программ, возникала проблема со структурой классов.
Допустим есть 3 класса: Круглый, Цветной, Умный, при этом Круглый и Цветной имеют общий базовый класс, в общем случае может быть как прямой так и через несколько классов (например, QObject) У класса Умный есть методы: Раскрывающийся текст добавитьЦветные(список<Цветной> цветные); установитьКруглый(Круглый круглый); Иногда требуется ещё один класс, который в программе ведёт себя двояко, то как Круглый, то как Цветной. Выходил из положения так (на примере Умного): Раскрывающийся текст добавитьЦветные(список<Цветной> цветные); добавитьЦветные(список<Двоякий> цветные); // перегруженный метод установитьКруглый(Круглый круглый); установитьКруглый(Двоякий круглый); // перегруженный метод Как бы так извернутся, чтобы получить Двоякий класс, который можно было бы применять и вместо Цветного и вместо Круглого, не создавая перегруженных версий функций у класса Умный? |
|
|
|
![]() |
|
Алексей1153 |
18.9.2018, 9:13
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(Litkevich Yuriy @ 18.9.2018, 8:17) Link А MOC не поддерживает и правильно делает! Я и так не люблю множественное наследование, с ним проблем можно огрести. Поэтому и предлагаю использовать "кирпичики", из которых любой потомок можно собрать, а сигналы в каждом потомке нужно разрулить вручную между кирпичиками |
|
|
|
Litkevich Yuriy Двоякий класс 14.9.2018, 7:50
Iron Bug ты лучше на примере кода покажи. на этих (особенно... 14.9.2018, 17:47
Алексей1153 Litkevich Yuriy,
я так понимаю, возможные свойст... 15.9.2018, 11:30
Litkevich Yuriy кроме 3-го пункта, Умный сам по себе.
Для абстрак... 18.9.2018, 6:17
Litkevich Yuriy Цитата(Алексей1153 @ 18.9.2018, 11:13) ... 19.9.2018, 13:36
Litkevich Yuriy а-а-а, допёр! 19.9.2018, 14:22![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 7.1.2026, 22:49 |