C++之继承和派生

概述

在这里插入图片描述
继承的优点:减少代码的冗余 提高代码的重用性

继承的分类

继承方式分类:
public : 公有继承 (重要)
private : 私有继承
protected : 保护继承
父类个数分类:
1.单继承:指每个派生类只直接继承了一个基类的特征 (一个父类 派生出 一个子类)

2.多继承:指多个基类派生出一个派生类的继承关系,多继承的派生类直接继承了不止一个基类的特征(多个父类 派生出 一个子类)
注意:
子类继承父类,子类拥有父类中全部成员变量和成员方法(除了构造和析构之外的成员方法),但是在子类中,继承的成员并不一定能直接访问,不同的继承方式会导致不同的访问权限。

权限

不管是什么继承方式,父类中的私有数据在 子类中不可见
在这里插入图片描述
在这里插入图片描述

继承中的 子类、父类、对象成员的构造和析构顺序

在这里插入图片描述
注意:
1、子类会默认调用 父类的 无参构造
2、子类 必须显示 使用初始化列表 调用 父类的有参构造

Son(int a,int b):Base(a),b(b)
{
    //this->b = b;
}

父类和子类的同名 成员变量 处理

1、当 父类和子类 成员变量同名时 ,在子类就近原则 选择本作用域的子类成员。
2、如果在子类中必须使用父类中的同名成员 ,必须加上父类的作用域。
3、子类可以借助 父类的公有方法 间接的操作 父类的私有数据(不可见的数据)
如果子类和父类的成员函数同名,访问父类中的成员函数,需要加上父类的作用域。

发布了24 篇原创文章 · 获赞 13 · 访问量 3118

猜你喜欢

转载自blog.csdn.net/Evan_work/article/details/105084226