Здравствуйте, гость ( Вход | Регистрация )
|
ViGOur |
10.2.2009, 17:48
Сообщение
#1
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Мы же все не глупые, так что получаем ответ не используя компилятор!
И для тренировки мозга, каков будет результат, если func сделать виртуальной функцией? То что ниже этой темы читаем после того, как ответили на задачку... |
|
|
|
![]() |
|
Влад |
24.8.2009, 9:38
Сообщение
#2
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8
|
1. c(); По правилу поиска имен, будет найдена функция A::operator()(). При ее выполнении, будет произведен вызов A::func(), поскольку func() - невиртуальная и связывание произойдет еще на этапе компиляции.
2. c.func(); А вот при этом вызове будет напрямую вызвана функция C::func(), разумеется. Поэтому вывод будет: Цитата class A
class C |
|
|
|
ViGOur Задачка в общем и не задачка 10.2.2009, 17:48
ViGOur Желательно пишем, почему вы считаете, что будет им... 10.2.2009, 20:05
void* проголосовал за А С
вроде бы все логично, вначале... 10.2.2009, 20:36
ViGOur Цитата(void* @ 10.2.2009, 20:36) хорошая ... 10.2.2009, 20:40
Kagami Мне кажется что ответ С С
Оператор () вызывает на ... 11.2.2009, 10:01
berserk Цитата(Kagami @ 11.2.2009, 11:01) Мне каж... 21.8.2009, 16:41
ViGOur Цитата(Kagami @ 11.2.2009, 10:01) UPD: пр... 11.2.2009, 10:08
Kagami Я голосовал Первым. Просто комментарий только сей... 11.2.2009, 10:48
kwisp я вот под пивом и то верно ткнул.
надо чего-нить с... 21.8.2009, 22:32![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 2.1.2026, 17:11 |