Duplicar posibles:
Why pure virtual function is initialized by 0?¿Qué significa "= 0"? Qué hacer al declarar funciones virtuales puras en C++?
Sé que, con el fin de declarar una función virtual pura es necesario utilizar "= 0;" sintaxis, así:
class Foo
{
protected:
Foo();
virtual int getValue() = 0;
};
Mi pregunta es, ¿qué es exactamente (en el funcionamiento interno del compilador) hace el "= 0;" sintaxis hacer? ¿De verdad establece el puntero de función igual a cero? ¿Sirve como nada más que una declaración de intenciones, como la palabra reservada "abstracta" en Java y C#, y si es así, por qué no agregar una palabra reservada como "abstracta" al lenguaje en lugar de usar esa sintaxis arcana?
Esta pregunta se responde [aquí] (http://stackoverflow.com/questions/2156634/why-pure-virtual-function-is-initialized-by-0). – Nerdtron
Porque la palabra clave 'pure' sería demasiado legible para los programadores de C++. – orlp
@nightcracker: Bjarne Stroustrup es cauteloso con las palabras clave contextuales (es decir, identificadores que son solo palabras clave en algunos contextos y no otros) y con razón porque hace el léxing un poco más difícil (es decir, no puede decir si un identificador particular es una palabra clave o no sin su contexto). No puedo culparlo por esto. Sin embargo, también es cauteloso con la introducción de palabras clave completas, y esto produce todos esos usos raros ('static' !!!!). –