可能重复:
What is this weird colon-member syntax in the constructor?
我有以下基类和派生类;
class P {
int n;
public:
P( int id );
virtual int getn();
virtual int toss( int x ) = 0;
};
class RNP : public P {
int n;
public:
RNP( int id);
int toss( int x );
};
我为RNP创建了一个构造函数,但是当我编译时我得到了一个错误
player.cc:9:11: error: constructor for 'RNP' must explicitly initialize the base class 'P' which does not have a default constructor
我如何在派生类中初始化基类?
答案 0 :(得分:1)
只需调用其构造函数即可。它可以在初始化列表中完成,您可以在其中定义RNP::RNP
:
RNP::RNP( int id )
:
P( id )
{
//...
}
答案 1 :(得分:0)
通常你需要在派生类构造函数中使用" ::"操作
答案 2 :(得分:0)
在派生类'构造函数参数
之后使用 :RNP::RNP( int id): P (id)
{
//do your stuff
}