![]() |
|
Модераторы: bsa |
![]()
|
|
| GoldFinch |
|
||||||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
извиняюсь за название темы, но в этом разделе и не такое было)
есть два абстрактных класса,
их менять нельзя и есть конкретный класс
хочу разбить этот конкретный класс на два, примерно вот так:
при этом получаю ошибку, что CB абстрактный, т.к. CB::AbsB::foo не реализован можно ли тут что-то сделать? |
||||||
|
|||||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
разумеется если написать
struct AbsB : virtual AbsA { virtual void bar() = 0; }; struct CA : virtual AbsA то проблема решена, но AbsB менять нельзя |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Если нужно наследование реализаторов (а наследованиие абстрактных классов по заданию исключать нельзя), то только через определение нужной функции.
Если наследование реализаторов как таковое не нужно, и используется для исключения дублирования кода, то тогда можно извратиться с шаблонами, типа такого :
хотя, имхо, это и возможно другие решения являются костылями, для устрамнения проблемы, созданной неправильно сконструированными абс. классами.. и по возможности желательно изменить именно то, чего Вы запретили |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |