首页 > 代码库 > C++继承

C++继承

 继承概念:

       继承机制是面向对象程序设计是代码可以重复利用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生的新类称为派生类(和基类是两个不用的作用域),继承呈现了面向对象程序设计的层次结构,体现了有简单到复杂的认知过程

 

三种成员访问限定符:

             public       (不解释)

             protected (类内成员,想要被子类继承,但不想要在类外被访问)

             private      (无法直接在类外访问或者子类中继承)

 

继承关系:

              public继承       class B:public A  //(书写方式B继承A) ;is->a原则

              protected继承 (基类的非私有成员全都成为子类的保护成员)has-》a原则

              private继承      (基类的非私有成员全都成为子类的私有成员)

 

派生类的默认成员函数:

              构造函数

              拷贝构造函数

              析构函数

              赋值运算符重载

              取地址操作符重载

              const修饰的取地址操作符重载

继承与转换——赋值兼容规则—public

             1、子类对象可以赋值给父类对象(切割/切片)

             2、父类对象不可以赋值给子类对象

             3、父类的指针/引用可以指向子类对象

             4、子类指针/引用不能直接指向父类对象(可以通过强制类型转换) //*(B*)&a

 

单继承 & 多继承 & 菱形继承

单继承:(class B:public A) (B只有一个直接父类A)

多继承:  (class B:public A1,public A2)/(class B:public A1,public A2,public A3...) (B有两个或者两个以上的直接父类)

菱形继承: (class B1:public A   class B2:public A   class C:public B1   class C:public B2) (存在二义性和数据冗余问题)

虚继承:   (class B1:virtual public A   class B2:virtual public A) (解决了数据冗余和空间浪费问题,但访问虚继承成员开销会很大) **慎用

 

C++继承