runtime_error期待";"?

runtime_error expecting a ";"?

本文关键字:期待 error runtime      更新时间:2023-10-16

我试图使用继承来创建一个从runtime_error派生的类,但我一直得到一个错误,即使这是练习中使用的确切代码,并作为本书的一个例子。下面是代码:

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

现在我得到一个错误,它说它需要一个;在runtime_error("企图除零")行之前

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

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

您正在尝试调用成员初始化列表中的基类构造函数,语法为:

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

在这种情况下,它并没有节省多少,但如果您在整个类中按名称使用runtime_error,则将来更容易交换基数。

class DivideZeroEx : public runtime_error
{ 
typedef runtime_error base;
public: 
   DivideZeroEx() : base( " attempt to divide by zero" ) 
   {
   }
};
相关文章: