![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.10.2010
Сообщений: 46
|
![]()
Добрый день. Проблема такая: есть базовый класс, в нём метод - возвращающий ссылку на объект данного класса:
Base & foo() {return *this;} Надо сделать так, чтобы для дочернего класса срабатывала та же функция, но возвращала ссылку не на базовый класс, а естественно на самого наследника. Можно ли это как-то сделать, не переопределяя функцию в дочернем классе? Вот пример: Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
а откуда ваш базовый класс узнает о наследниках?
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
кстати, в вашем примере толку нету от возврата ссылки, так как всеравно в бой идет конструктор коирования. а так, гляньте: http://programmersforum.ru/showthread.php?t=129110 Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#4 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Пепел Феникса
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
срезку ?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
![]() Цитата:
Код:
Со мной можно встретиться на www.clipper.borda.ru
Последний раз редактировалось Сыроежка; 15.09.2011 в 18:41. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
Сыроежка, разве Child::foo не должна быть так же виртуальной?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
![]()
Насколько мне известно, она и является виртуальной. Ключевое слово virtual достаточно указать только в базовом классе.
Со мной можно встретиться на www.clipper.borda.ru
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание объектов класса при private-наследовании | _-Re@l-_ | Общие вопросы C/C++ | 2 | 30.07.2011 12:52 |
Ошибка в наследовании классов | Minus_yu | PHP | 7 | 24.02.2011 19:58 |
ГЛЮКИ при наследовании фреймов Delphi 7 | AnTe | Компоненты Delphi | 3 | 10.12.2010 09:02 |
Как вызываются конструкторы объектов при наследовании? | TwiX | Общие вопросы C/C++ | 10 | 17.11.2010 13:59 |
Перегрузка == при наследовании | paramon | Общие вопросы C/C++ | 5 | 17.06.2008 00:17 |