C++ 运行时错误,应为“错误”&引用;?

C++ 运行时错误,应为“错误”&引用;?,c++,inheritance,syntax,C++,Inheritance,Syntax,我试图使用继承来创建一个从运行时\u error派生的类,但是我不断得到一个错误,即使这是练习中使用的代码,也是本书中的一个示例。代码如下: class DivideZeroEx : public runtime_error { public: DivideZeroEx() runtime_error( " attempt to divide by zero" ) }; 现在我得到一个错误,指出它需要一个;在运行时错误(“尝试除以零”)行之前。您

我试图使用继承来创建一个从
运行时\u error
派生的类,但是我不断得到一个错误,即使这是练习中使用的代码,也是本书中的一个示例。代码如下:

class DivideZeroEx : public runtime_error
{
    public:
        DivideZeroEx()
            runtime_error( " attempt to divide by zero" )
};

现在我得到一个错误,指出它需要一个;在运行时错误(“尝试除以零”)行之前。

您试图调用成员初始值设定项列表中的基类构造函数,语法为:

DivideZeroEx():runtime_error( " attempt to divide by zero" )
{
}

调用基类构造函数的语法应为:

DivideZeroEx() : runtime_error( " attempt to divide by zero" ) { }

在这种情况下,它不会节省很多,但是如果在整个类中按名称使用
runtime\u error
,将来交换基会容易得多

class DivideZeroEx : public runtime_error
{ 
typedef runtime_error base;

public: 
   DivideZeroEx() : base( " attempt to divide by zero" ) 
   {
   }
};

在C/C++中,语句必须以分号结尾。你真的确定没有错过吗?@Sjoerd胡说八道。为什么弗拉德同样的答案投了很高的票,而这一个却投了很低的票?谢谢你的帮助!我让它正常工作了。那么,我可以使用这些类型的运行时错误捕获还有什么其他原因呢?我不完全确定我是否理解您的要求,但我想说的是,您可以为您需要的每个不同的异常创建一个派生类,如有必要,可以按类别对它们进行分组(例如,使用另一层继承)。查看和以获取更多信息。
class DivideZeroEx : public runtime_error
{ 
typedef runtime_error base;

public: 
   DivideZeroEx() : base( " attempt to divide by zero" ) 
   {
   }
};