![]() |
|
Модераторы: bsa |
![]()
|
|
| zim22 |
|
||||||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Вот структура классов:
Почему не компилятся закомментированные строки? Потому что мы явно не наследуемся от этих классов?
если изменить private на public, то заработает:
Аналогичный код работает:
Это сообщение отредактировал(а) zim22 - 9.4.2009, 11:09 |
||||||||
|
|||||||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
zim22
ошибка явно обо всем рассказывает
потому что у тебя приватное наследование, сделаем пример немного проще
тут будет тоже самое |
||||
|
|||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
я не понимаю, почему нельзя указатель на объект B нельзя присвоить объекту А? Ведь он его базовый класс. А указатели на базовый класс можно использовать для объектов производных классов.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
zim22
можно, но в случае открытого наследования. В случае закрытого - тоже можно, но cast недоступен..
вот так попробуй |
|||
|
||||
| zim22 |
|
||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
azesmcar, супер! спасибо
Добавлено @ 11:41 по мне, так это извращение функцию main делать дружественной это что-то из той же оперы: не
а
Это сообщение отредактировал(а) zim22 - 9.4.2009, 11:44 |
||||
|
|||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
не так. Это справедливо только для открытого наследования. При других видах наследования ты не наследуешь интерфейс. Значит не можешь из интерфейса объекта-потомка вызывать функции интерфейса родителя. Сам подумай - это же очевидно, что в таком случае потомок никак не является родителем ибо у него совершенно другой интерфейс. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
а я и не пропогандировал такой метод Это сообщение отредактировал(а) azesmcar - 9.4.2009, 11:50 |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
подумал. действительно тупо. ведь фишка в том, чтобы из базового класса вызывать полиморфно методы из дочерних классов. А если интерфейс будет закрытым - то вызывать нечего будет. |
|||
|
||||
![]()
|
| Правила форума "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. |