En C++, es legal para dar una implementación de una función virtual pura:¿En qué circunstancias es ventajoso dar una implementación de una función virtual pura?
class C
{
public:
virtual int f() = 0;
};
int C::f()
{
return 0;
}
Por qué querrías hacer esto?
pregunta relacionada: El C++ faq lite contiene un ejemplo:
class Funct {
public:
virtual int doit(int x) = 0;
virtual ~Funct() = 0;
};
inline Funct::~Funct() { } // defined even though it's pure virtual; it's faster this way; trust me
No entiendo por qué el destructor se declaró virtual pura y luego implementado; y no entiendo el comentario por qué esto debería ser más rápido.