Возможный дубликат:
Почему чистая виртуальная функция инициализируется 0?
Я знаю, что для объявления чистой виртуальной функции вам нужно использовать "= 0;" синтаксис, например:
class Foo
{
protected:
Foo();
virtual int getValue() = 0;
};
Мой вопрос: что именно (во внутренней работе компилятора) делает "= 0;" синтаксис делать? Действительно ли он устанавливает, что указатель функции равен нулю? Является ли это не более чем выражением о намерениях, например "абстрактным" зарезервированным словом в Java и С#, и если да, почему бы не добавить зарезервированное слово, например "абстрактное" к языку, а не использовать такой тайный синтаксис?