после Собеседования... остались вопросы
От: The_Thing Россия
Дата: 18.08.09 11:30
Оценка:
Только что с собеседования.
И попался такой вопрос (см ниже):


#include "iostream"

class A { public: virtual void f() =0; };
class B { public: virtual void f() { std::cout<< "My string"<<std::endl; } };

void main()
{
// обращаю внимание, что троиточия между кодом нет, весь код "как есть".

    A *a = 0; // здесь именно нули
    B *b = 0; // здесь именно нули

    //a->f();
    b->f();
}


Если я не ошибаюсь, то была именно такая запись. Был вопрос, как поведёт себя программа. Правильный ответ был озвучен так: если снять комментарий с "a->f();", то программа ругнется Unhandle (так и было мною сказано), а вот b->f(); должен выдать строку "My string"
И сослались на устройство виртуальной таблицы и стандарт (после поста сразу лезу в стандарт, что бы узнать).

Попробовал на MSVC 2008, b->f() также выдало Unhadled.
Это был гон, или ошибка компилятора Действительно ли это так?

p.s. Если тут окажется человек с которым я сегодня беседовал прошу подключиться к топику.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.