Possible Duplicate:
What is an undefined reference/unresolved external symbol error and how do I fix it?
我有一些 Java 经验,现在正在学习 C++ 类(class)。我想尝试编写一个接口(interface),但我遇到了一些我无法解决的析构函数问题,即使在 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()' 的引用”。这是什么意思,我该如何解决?
如果这是一个愚蠢的问题,请原谅我!
非常感谢您的帮助, 夜光
最佳答案
你已经声明了析构函数,但没有定义它。将声明更改为:
virtual ~Force() {}
定义它什么都不做。
您还希望将抽象接口(interface)中的所有功能纯虚拟,否则它们也需要定义:
virtual VECTOR eval(VECTOR x, double t) = 0;
关于c++ - "undefined reference"到虚拟基类析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444800/