五:继承和派生

5.1:继承的三种方式

     继承:公有继承,私有继承,派生继承

     访问规则:

 私有成员:基类中的私有成员,无论哪一种方式继承在子类都不能直接访问。

 公有成员:基类公有成员被 public 继承 属性仍然是 public , private 继承,属性为private, 保护继承为 protected

 保护成员:公有继承 protected , 私有继承 private , 保护继承 protected

5.2:派生类的构造函数和析构函数

     派生类的构造函数:必须对基类构造函数也进行初始化。

 class Bpublic A

 {

 public:

   B( int a1,  int b1 ):A(a),b(b1){}

 }

5.3:多重继承和虚基类

 声明:

class A:public B , private C ,protected D{

//同样要初始化

}

多重继承构造函数,析构函数逇调用顺序:先调用基类的构造函数,在调用对象成员的构造函数,最后调用派生类构造函数,

同一层次各个基类构造函数调用顺讯取决于声明继承的顺序。析构函数的调用与构造函数相反。

虚基类:目的是为了解决二义性

A同时继承了B类和C类,B 类和 C类都是都是继承D类,A类同时从B类和C类继承了D类数据成员,这样继承了2遍,为了解决这个问题用虚继承。

clas B: virtual public D{

}

clas C: virtual public D{

}

class A:public B , public C{

}

 

posted @ 2020-05-05 17:42  INSTANCE_SELF  阅读(201)  评论(0编辑  收藏  举报