Двоякий класс |
Здравствуйте, гость ( Вход | Регистрация )
Двоякий класс |
Litkevich Yuriy |
14.9.2018, 7:50
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Несколько раз, при написании программ, возникала проблема со структурой классов.
Допустим есть 3 класса: Круглый, Цветной, Умный, при этом Круглый и Цветной имеют общий базовый класс, в общем случае может быть как прямой так и через несколько классов (например, QObject) У класса Умный есть методы: Раскрывающийся текст добавитьЦветные(список<Цветной> цветные); установитьКруглый(Круглый круглый); Иногда требуется ещё один класс, который в программе ведёт себя двояко, то как Круглый, то как Цветной. Выходил из положения так (на примере Умного): Раскрывающийся текст добавитьЦветные(список<Цветной> цветные); добавитьЦветные(список<Двоякий> цветные); // перегруженный метод установитьКруглый(Круглый круглый); установитьКруглый(Двоякий круглый); // перегруженный метод Как бы так извернутся, чтобы получить Двоякий класс, который можно было бы применять и вместо Цветного и вместо Круглого, не создавая перегруженных версий функций у класса Умный? |
|
|
Текстовая версия | Сейчас: 25.11.2024, 7:02 |