我已经创建了自己的异常类,它派生自runtime_error
c'tor 并在 c'tor 中得到一个 int。
我想为这个异常创建一个基类,以便使用多态性,所以我只能捕获基类,基本上我会捕获派生类,然后从中调用 .what() 方法。
所以,这是基类:(在另一个 cpp 文件中我得到了 baseException::~baseException(){})
class baseException
{
virtual ~baseException()=0 {}
virtual const char* what()=0;
};
这是派生类:
class myException: public runtime_error, public baseException
{
public:
myException(int): runtime_error("Error occured") {}
const char* what() {return runtime_error::what();}
};
但是当我主要写:
catch(baseException* x)
{
cout<<x->what();
}
它只是跳过它并且不进入块,即使 myException 继承自 baseException。有什么建议吗?