继承自std :: runtime_error

时间:2014-04-12 08:53:36

标签: c++

我正在编写自己的Exception类:

class Exception : public std::runtime_error{

}

我想重载what()。我怎么能这样做?

此外,从std::runtime_error继承时我必须记住什么?

1 个答案:

答案 0 :(得分:1)

我认为作为runtime_error的一部分,我认为它是虚拟的,所以要重载它,你需要创建一个方法完全相同的方法。因此,如果您将浏览器指向:http://www.cplusplus.com/reference/exception/exception/,那么您将看到什么()

的定义

为了超载它,你需要在头文件中做这样的事情:

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

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

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

希望它有所帮助...