Al compilar en GCC recibo el error : especificador puro en la definición de función, pero no cuando compilo el mismo código usando VS2005.pure-specifier en la definición de función
class Dummy {
//error: pure-specifier on function-definition, VS2005 compiles
virtual void Process() = 0 {};
};
Pero cuando la definición de esta función virtual pura no está en línea, funciona:
class Dummy
{
virtual void Process() = 0;
};
void Dummy::Process()
{} //compiles on both GCC and VS2005
lo que hace el medio de error? ¿Por qué no puedo hacerlo en línea? ¿Es legal evadir el problema de compilación como se muestra en la segunda muestra de código?
Sí, debería, si necesita una. Es perfectamente legal tener uno. –
Pero con un cuerpo solo sería una función virtual. ¿Qué debería hacer una función virtual pura con un cuerpo? –
@ Martin Posiblemente nada - si se declara un destructor virtual puro (por ejemplo) que debe darle un cuerpo. –