《C++ PrimerPlus(第6版)中文版》—第13章 类继承
① 使用公有派生,基类的公有成员将成为派生类的公有成员,基类的私有部分也将成为派生类的一部分,但只能通过基类的公有(public)和保护(protected)方法访问。
② 需要在继承特性中添加:
-
派生类需要自己的构造函数
-
派生类可以根据需要添加额外的数据成员和成员函数
③ 派生类的构造函数必须给新成员和继承的成员提供数据。
④ 派生类不能直接访问基类的私有成员,而必须通过基类方法进行访问。具体地说,派生类构造函数必须使用基类构造函数。
⑤ 创建派生类对象时,程序首先创建基类对象;如果不调用基类构造函数,程序将使用默认的基类构造函数,否则应显式地调用正确的基类构造函数。
class RatedPlayer:public TableTennisPlayer //从TableTennisPlayer进行公有继承
{
private:
unsigned int rating;
public:
RatedPlayer(unsigned int r = 0, const string & fn = "none", const string & ln = "none", bool ht = false);
RatedPlayer(unsigned int r, const TabelTennisPlayer & tp);
unsigned int Rating() const { return rating; };
void ResetRating(unsigned int r) { rating = r };
};
RatedPlayer::RatedPlayer(unsigned int r, const string & fn, const string & ln, bool ht): TableTennisPlayer(fn, ln, ht) //派生类构造函数显式地调用相应的基类构造函数
{
rating = r;
}