|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.09.2011, 17:11 | #1 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
C++ Вопрос по виртуальным методам
Здравствуйте!
Осваиваю С++ и в данный момент возникла проблема с виртуальным методом. В упрощенном виде пример выглядит так: Есть базовый класс Код:
Пробовал по-другому: Код:
Что нужно написать, чтобы добиться желаемого эффекта? Заранее спасибо.
Изобретатель велосипедов
|
09.09.2011, 17:42 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
как ругается то?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
09.09.2011, 17:54 | #3 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
"Ссылка на неразрешенный внешний символ ...",
что, очевидно, связано с абстрактностью метода. А абстрактным он остался именно из-за существования описанной проблемы - метод при вызове из базового Collection виртуальным не считается...(
Изобретатель велосипедов
|
09.09.2011, 18:08 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Selestis
вызов не проходит по цепочке наследования(вызывается только базовый пустой Clear() {;}. Что нужно написать, чтобы добиться желаемого эффекта? вариантов у тебя ровно DVA: 1. смириться с тем, что вызов виртуальной функции в деструкторе происходит без учёта виртуальности 2. выбрать более другой язык программирования, где такой вызов возможен
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
09.09.2011, 18:11 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
хм, действительно не компилит
странно. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 09.09.2011 в 18:13. |
09.09.2011, 18:18 | #6 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Rififi
Видимо, 1))) Наверное, придется переопределять деструктор и там для каждого класса вызывать свой Clear... Но если кто-то что-то всё же сообразит, буду рад.
Изобретатель велосипедов
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с виртуальным хостом | hxt | PHP | 0 | 03.11.2010 18:17 |
По численным методам | VovaZZ | Общие вопросы C/C++ | 0 | 20.10.2010 17:20 |
Помогите пожалуйста с виртуальным собеседником | BrokenDream | Обсуждение статей | 1 | 07.10.2009 08:19 |
Вопрос Дня по методам С++ | Alitrix | Общие вопросы C/C++ | 4 | 17.06.2009 09:29 |
C# доступ к методам класса. | Lime | Общие вопросы .NET | 4 | 03.03.2009 20:51 |