Estuve obteniendo el siguiente error:
Networking.cpp:193: undefined reference to `vtable for Client'
Es mensaje de error es bastante oscuro, pero la solución es muy simple: en caso de usar clases con funciones
virtual
, gcc
exige que éstas funciones sean implementadas en un archivo .cpp
:Si tenemos el siguiente
Client.h
:class Client {
public:
Client() {
// ...
}
virtual ~Client() {
// ...
}
virtual void foo() {
// ...
}
}
Tendremos que dividirlo en dos. En
Client.h
habrá que tener:class Client {
public:
Client() {
// ...
}
virtual ~Client();
virtual void foo();
}
Y en
Client.cpp
:Client::~Client() {
// ...
}
void Client::foo() {
// ...
}
Para más información lerr la FAQ de gcc sobre vtables.
1 comentario:
Gracias Alejandro, justo el error que tenia, por no implementar el destructor...
Publicar un comentario