鉴于此示例代码:C++异常和性病继承::异常
#include <iostream>
#include <stdexcept>
class my_exception_t : std::exception
{
public:
explicit my_exception_t()
{ }
virtual const char* what() const throw()
{ return "Hello, world!"; }
};
int main()
{
try
{ throw my_exception_t(); }
catch (const std::exception& error)
{ std::cerr << "Exception: " << error.what() << std::endl; }
catch (...)
{ std::cerr << "Exception: unknown" << std::endl; }
return 0;
}
我得到以下输出:
Exception: unknown
然而,简单地从std::exception
public
使得my_exception_t
继承,我得到以下输出:
Exception: Hello, world!
是否有人pl向我解释为什么继承类型在这种情况下很重要?奖励积分为标准中的参考。
接受标准参考;谢谢! – fbrereto 2010-04-03 03:44:54