一、派生一个类
使用公有派生,基类的公有方法将成为派生类的共有成员;基类的私有部分也将成为派生类的一部分,但只能通过基类的公有和保护方法访问。
需要在继承特性中添加什么?
1.派生类需要自己的构造函数
2.派生类可以根据需要添加额外的数据成员和成员函数
/
构造函数必须给新成员和继承的成员提供数据,派生类构造函数应通过成员初始化列表将基类信息传递给基类构造函数
class RatedPlayer:public TableTennisPlayer{private:unsigned int rating;public:RatedPlayer(unsigned int r=0,const char *fn="none",const char *ln="none",bool ht=false);RatedPlayer(unsigned int r,const TableTennisPlayer &tp);unsigned int Rating(){ return rating;}void ResetRating(unsigned int r){rating =r;}};RatedPlayer::RatedPlayer(unsigned int r,const char * fn,const char * ln,bool ht):TableTennisPlayer(fn,ln,ht){rating=r;}RatedPlayer::RatedPlayer(unsigned int r,const TableTennisPlayer & tp):TableTennisPlayer(tp),rating(r){}
派生类和基类之间的特殊关系:基类指针可以在不进行显式类型转换的情况下指向派生类对象,基类引用可以在不进行显示类型转换的情况下引用派生类对象,不过,基类指针或引用只能用于调用基类方法。这种关系是单向的,不可以将基类对象和地址赋给派生类引用和指针。
RatedPlayer rplayer1(1140,"Mallory","Duck",true);TableTennisPlayer & rt=rplayer;TableTennisPlayer * pt=&rplayer;