1)派生类必需使用基类构造函数,如果不调用程序将使用默认的的基类构造函数RatedPlayer::RatedPlayer(unsigned int r,char *fn,char *ln,bool ht):TableTennis(fn,ln,ht)
warning:1)基类对象首先被创建 2)派生类构造函数应通过初始化器列表将基类信息传递给基类构造函数 3)派生类构造函数应该初始化派生类新增的数据成员
RatedPlayer::RatedPlayer(unsigned int r,TableTennis &tp):TableTennis(tp),rating(r);其中Tabletennis是基类,RatedPlayer是派生类
如果没有使用virtual,程序将根据引用类型或指针类型选择方法,如果使用了virtual,程序将根据引用或指针指向的对象类型选择方法
1) C++中通常在基类中将派生类会重新定义的方法声明为虚拟方法,方法在基类中被声明为虚拟的以后,他在派生类中自动成虚拟方法
2)非构造函数不能使用成员初始化器列表用法,子类如想调用父类的方法,则父类方法前必须加作用域解析操作符(::),父类::父类方法()
3)使用虚拟析构函数可以确保正确的析构函数序列被调用,
4)子类不能继承父类的构造函数,友元不能是虚拟函数应为友元不是类成员,只有成员函数才是虚拟函数
阅读(714) | 评论(0) | 转发(0) |