noc*_*lux 27 c++ abstract-class undefined-reference
我有一些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;
};
Run Code Online (Sandbox Code Playgroud)
我试图为基类声明一个虚拟析构函数,并为派生类声明一个非虚函数,但是我得到一个错误,说"未定义引用`Force :: ~Force()'".它是什么意思,我该如何解决?
如果这是一个愚蠢的问题,请原谅我!
非常感谢你的帮助,noctilux
Mik*_*our 39
你已经声明了析构函数,但没有定义它.将声明更改为:
virtual ~Force() {}
Run Code Online (Sandbox Code Playgroud)
定义它什么也不做.
您还希望将抽象接口中的所有函数都设置为纯虚拟,否则也需要定义它们:
virtual VECTOR eval(VECTOR x, double t) = 0;
Run Code Online (Sandbox Code Playgroud)