可能重复:
What is an undefined reference/unresolved external symbol error and how do I fix it?
我有一些Java经验,现在正在做C ++课程。我想尝试编写一个接口,但是我遇到了一些我无法解决的析构函数问题,即使是在Internet上的帮助......这是我的代码:
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;
};
我试图为基类声明一个虚拟析构函数,并为派生类声明一个非虚拟析构函数,但是我收到一个错误,说“未定义引用`Force :: ~Force()'”。它是什么意思,我该如何解决?
如果这是一个愚蠢的问题,请原谅我!
非常感谢你的帮助, NOCTILUX
答案 0 :(得分:36)
你已经声明了析构函数,但没有定义它。将声明更改为:
virtual ~Force() {}
将其定义为什么都不做。
您还希望在抽象接口纯虚拟中创建所有函数,否则也需要定义它们:
virtual VECTOR eval(VECTOR x, double t) = 0;