|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.12.2011, 20:02 | #1 |
Регистрация: 15.12.2011
Сообщений: 3
|
[с++] Множественное наследование
У меня есть ромбовидное наследование. От Ship наследуются виртуально GuardShip и TransShip, а TransGuardShip наследуется от них.
Компилятор сообщает о такой ошибке: error C2250: TransGuardShip: неоднозначное наследование "TransShip *Ship::copy(void) const" Причем если поменять строчку Код:
Код:
Но при этом Код:
PS: Понимаю, что ромбовидное наследование вещь гадкая, но по условию оно должно быть Базовый класс Судна: Код:
Транспортный корабль: Код:
Военный корабль: Код:
|
15.12.2011, 20:03 | #2 |
Регистрация: 15.12.2011
Сообщений: 3
|
Военно-транспортный кораблик:
Код:
Проблема кроется в том, что функция copy() является чисто виртуальной? Вот текст самой функции copy() Код:
|
15.12.2011, 22:06 | #3 |
Пользователь
Регистрация: 19.12.2007
Сообщений: 18
|
Я думаю что проблема заключается в том что у вас функция copy() возвращает разные значения в классах:
в классе Ship - это указатель на Ship, в классе TransShip - это указатель на TransShip, а в классе GuardShip - указатель на GuardShip. Поэтому компилятор думает что это разные функции и не знает какую нада перегружать. На счет функций get и show, то они во всех классах возвращают одинаковые данные(то есть поток) и они перегружаются правильно. Для проверки, сделайте функцию copy() например void, то есть во всех классах она должна перегружаться как void copy() и он ругаться не будет. Последний раз редактировалось htonasral; 15.12.2011 в 22:09. |
16.12.2011, 18:25 | #4 |
Регистрация: 15.12.2011
Сообщений: 3
|
htonasral, спасибо.
Проблема была решена, путем изменения значения возвращаемых функций. Везде оставил Ship* |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Множественное наследование в C# | Mixim | C# (си шарп) | 15 | 14.03.2012 19:43 |
Множественное наследование | Jugger | Помощь студентам | 2 | 09.12.2011 20:23 |
Множественное наследование С++ | добрый_фей | Помощь студентам | 1 | 13.06.2011 14:31 |
Множественное наследование | liza kalueva | Общие вопросы C/C++ | 2 | 10.03.2010 01:57 |
Множественное наследование | Crucian | Общие вопросы Delphi | 1 | 29.12.2008 14:26 |