c++ - 继承自 std::runtime_error

标签 c++

我正在编写自己的异常类:

class Exception : public std::runtime_error{

}

我想要重载what()。我怎样才能做到这一点?

另外,继承std::runtime_error时需要注意什么?

最佳答案

我认为,作为runtime_error的一部分,我相信它是虚拟的,因此要重载它,您需要创建一个具有完全相同的方法签名的方法。因此,如果您将浏览器指向:http://www.cplusplus.com/reference/exception/exception/然后你会看到what()的定义

因此,要重载它,您需要在头文件中执行以下操作:

class Exception : public runtime_error
{
    public:
        const char* what() const throw();
}

然后你可以在你的 cpp 文件中定义它:

const char* Exception::what() const throw()
{
    // do stuff
}

希望对你有帮助...

关于c++ - 继承自 std::runtime_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23028276/

相关文章:

c++ - 为什么指向释放内存的引用有效?

c++ - 在 UML 中绘制模板类

c++ - 构造函数引用参数导致段错误

c++ - cilk reduce 是如何完成的(thread vs smid)

c++ - 在将项目插入链接列表后排序?

c++ - 为什么编译此代码会产生错误?

C++ 在初始化列表之外显式调用父构造函数

c++ - 从输入流中读取

C++ std::queue pop() 和析构函数

C++ 重写方法未被调用