创建派生类对象时,程序首先创建基类对象。
RatedPlayer::RatedPlayer(unsigned int r, const char* fn, const char* ln, bool ht) : TableTennisPlayer(fn,ln,ht)
{
rating = r;
}
TableTennisPlayer(fn,ln,ht) 调用基类构造函数. 实参传递给TableTennisPlayer.
如果没有成员初始化列表。 则程序将使用默认的基类构造函数。
RatedPlayer::RatedPlayer(unsigned int r,const char * fn, const char * ln,bool ht) // TableTennisPlayer() 将调用
{
rating = r;
}
第二种构造函数
RatedPlayer::RatedPalyer(unsigned int r, const TableTennisPlayer &tp): TableTennisPalyer(tp)
{
rating = r;
}
const TableTennisPlayer &tp 调用基类的复制构造函数。如果基类没有定义,则自动生成一个。因为这个类没有动态内存分配。
以上写法还可以写成
RatedPlayer::RatedPalyer(unsigned int r, const TableTennisPlayer &tp): TableTennisPalyer(tp),rating(r)
{
}