首页 > 代码库 > 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++继承