我有以下 C++ 片段:

#include <iostream>

using namespace std;

class A
{
public:
    virtual ~A()
    {
    }
};

A::~A()
{

}

int main(int argc, char * argv [])
{
    return 0;
}
为什么我会收到这些错误?:

最佳答案

只需在您的类(class)中使用以下内容

virtual ~A();

代替
virtual ~A()
             {
              }

编译器实际上是在告诉您这里的问题到底是什么。你有两个实现——一个在你的类中,另一个在它外面
A::~A()
{

}

你不能两者兼得。

关于c++ - 获取虚拟析构函数的重定义错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21480939/

10-11 22:09
查看更多