![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
|
|||
|
||||
| BSOD |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 1.11.2004 Где: Гомель Репутация: нет Всего: 3 |
а в потомке уже
а так нельзя, получится, что нет реализации чисто виртуальной функции в классе потомке ;) Это как бы было первое, что все пробовали, после чего эта проблема и обнаружилась ;) Добавлено через 34 секунды
Указатель на функцию -------------------- как корабль назовешь - то на нем и напишешь |
||||||
|
|||||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
можно перегруженная переопределенная функция может возвращать указатель или ссылку на потомков/предков возвращаемого оригинала Это сообщение отредактировал(а) J0ker - 15.12.2008, 00:31 |
|||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
BSOD, мне кажется, имел ввиду что при такой конструкции не получится сделать следующее :
Добавлено @ 23:35 думаю подойдет такой вот насбросок:
Это сообщение отредактировал(а) mes - 15.12.2008, 00:10 |
||||||
|
|||||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
такое и не должно получаться, если D1 и D2 не являются ковариантами для таких присвоений надо делать либо оператор преобразования типов либо специальный оператор= Добавлено через 2 минуты и 19 секунд функцию копирования лучше делать внешней и темплетной - как и сделано в STL непонятно, зачем изобретать велосипед |
|||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну да я сильно упростил, так будет точнее
согласен...но в классе я оставил ee специально для демонстрации, мне показалось так для тс будет яснее подходит ли ему такой способ или нет, а сама функция фактически и не нужна (только как оболочка), всю реализацию несет на себе функтор . как понял для сессии. Это сообщение отредактировал(а) mes - 15.12.2008, 00:10 |
||||||
|
|||||||
| BSOD |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 1.11.2004 Где: Гомель Репутация: нет Всего: 3 |
Я не про то, прост мы же получается не перегрузим функцию из родителя а введем новую. А т.к. в родителе наша функция чисто виртуальная, то компилер будет ругаться, что мы не ее не перегрузили в потомке.
Ну вот это я думаю прокатит, но я вроде бы как-то ужн реализовал, сейчас буду смотреть, что получилось Добавлено через 6 минут и 13 секунд
ну на самом деле наверное нужно было
;)
Что-то типа того -------------------- как корабль назовешь - то на нем и напишешь |
||||||||||
|
|||||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
А Вы попробуйте и будете сильно удивлены Только такая технология позволяет только клонирование, но не копирование объекта от потомка к потомку другого типа. |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
...
Это сообщение отредактировал(а) mes - 15.12.2008, 00:30 |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
вы меня запутали млин
не перегрузка конечно, а переопределение |
|||
|
||||
| BSOD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 1.11.2004 Где: Гомель Репутация: нет Всего: 3 |
Сорри, немного не досмотрел, так действительно должно работать Сделал почти так, только Клон ничего не возвращает, а в него передается ссылка на другой стек, куда он себя и копирует Всем спасибо, вопрос вроде как исчерпан -------------------- как корабль назовешь - то на нем и напишешь |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |