Possible Duplicate:
Why pure virtual function is initialized by 0?
I know that, in order to declare a pure virtual function you need to use "= 0;" syntax, like so:
class Foo
{
protected:
Foo();
virtual int getValue() = 0;
};
My question is, what exactly (in the internal workings of the compiler) does the "= 0;" syntax do? Does it actually set the function pointer equal to zero? Does it serve as nothing more than a statement of intent, like the "abstract" reserved word in Java and C#, and if so, why not add a reserved word such as "abstract" to the language rather than using such arcane syntax?