繁体   English   中英

runtime_error预期为“;”?

[英]runtime_error expecting a “;”?

我正在尝试使用继承来创建一个从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" ) 
   {
   }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM