错误 - 在C++中"抛出不同的异常"

ato*_*tor 4 c++ exception-handling

我收到一个错误告诉我

error: declaration of 'virtual FXHost::~FXHost()' throws different exceptions
error: than previous declaration 'virtual FXHost::~FXHost() throw ()'
Run Code Online (Sandbox Code Playgroud)

我不知道如何开始解决这个问题,我以前从未遇到过这个问题.

在我的.h我有:

public:
    virtual                         ~FXHost() throw();
Run Code Online (Sandbox Code Playgroud)

在我的.cpp我有:

FXHost::~FXHost()
{
   gHost = NULL;
}
Run Code Online (Sandbox Code Playgroud)

指针赞赏.

jpa*_*cek 5

所述throw()在一个函数声明的端部是一个例外规范.这意味着该函数永远不会抛出异常.这不能在派生类中被覆盖(仅限于进一步限制),因此错误.

由于您的实现本身不会抛出异常,因此您只需要添加throw()到析构函数声明中.

看看为什么你应该(不)使用C++的这个(错误)功能