我正在编写自己的Exception类:
class Exception : public std::runtime_error{
}
我想重载what()
。我怎么能这样做?
此外,从std::runtime_error
继承时我必须记住什么?
答案 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
}
希望它有所帮助...