c++ - "undefined reference"到虚拟基类析构函数

标签 c++ abstract-class undefined-reference

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/

相关文章:

c++ - 显式复制构造函数编译错误

c++ - if-else 树优化

c++ - 如何正确地进行动态内存分配(C++)

c# - 如何将抽象类作为类型实例的参数传递?

c - 我 undefined reference 已定义

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?

C++ STL 容器用作简单缓冲区时速度很慢(我做了一个基准测试)?

java - 抽象类上的 EJB 注入(inject)

java - 使用哪种模式来避免对象值转换器的代码重复

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?