c++ abstract-class undefined-reference

c++ - “Referencia indefinida” al destructor de la clase de la base virtual



abstract-class undefined-reference (1)

Posible duplicado:
¿Qué es una referencia indefinida / error de símbolo externo no resuelto y cómo puedo solucionarlo?

Tengo algo de experiencia con Java y ahora estoy haciendo un curso de C ++. Quería intentar escribir una interfaz, pero he tenido algunos problemas con los destructores que no he podido resolver, incluso con la ayuda en Internet ... Aquí está mi código:

class Force { public: virtual ~Force(); virtual VECTOR eval(VECTOR x, double t); }; class InvSquare : public Force { public: InvSquare(double A) { c = A; } ~InvSquare(){}; VECTOR eval(VECTOR x, double t) { // omitted stuff } private: double c; };

He intentado declarar un destructor virtual para la clase base y uno no virtual para la clase derivada, pero aparece un error que dice "referencia indefinida a` Force :: ~ Force () ''". ¿Qué significa y cómo puedo solucionarlo?

Perdóname si esta es una pregunta tonta!

Muchas gracias por tu ayuda, noctilux.


Has declarado el destructor, pero no lo has definido. Cambie la declaración a:

virtual ~Force() {}

Definirlo para no hacer nada.

También desea que todas las funciones de la interfaz abstracta sean simplemente virtuales , de lo contrario, también deberán definirse:

virtual VECTOR eval(VECTOR x, double t) = 0;