C++的继承

本文介绍了C++中的继承形式,包括私有、保护和公有继承,强调了继承带来的代码复用和多态调用的好处。同时,讨论了面向对象的特性,并详细解析了继承过程中成员的访问权限,特别是private和protected的区别。此外,还解释了派生类如何通过构造函数初始化基类的成员变量及其顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承有3种形式:私有继承、保护继承、公有继承,缺省的继承方式是私有继承。
继承的好处是什么?
1.基类给所有派生类提供公共的属性(成员变量)和方法(成员函数),通过继承达到代码复用的目的。

2.基类可以给所有派生类提供统一的纯虚函数接口,派生类通过函数重写,达到多态调用的目的。(OOP的很多设计模式离不开继承和多态,为了达到良好的软件设计,如高内聚,低耦合,遵循‘开-闭’原则等,继承和多态是必须涉及到的)。
说到oop:
OOP 语言有几个常考的理论问题是:
“面向对象 OOP 语言的四大特征?” 答:抽象,封装,继承,多态
“面向对象 OOP 语言的三大特征?” 答:封装,继承,多态
“常见的类与类之间的关系?” 答:代理,组合,继承

继承的访问限定代码如下:

// A是基类
class A
{
public:
 int ma;
protected:
 int mb;
private:
 int mc;
};
// B是派生类,继承到派生类里面的成员访问限定要小于等于继承方式
class B : public A 
{
public:
 int md;
protected:
 int me;
private:
 int mf;
};

派生类B从基类A继承了成员ma,mb和mc,那么这三个成员在派生类B种的访问权限是什么,看如下表格:

在这里插入图片描述

从上面的总结可以看出:
1.基类的private私有成员,无论采用什么继承方式,在派生类里面都是可以继承下来,但是无法访问。
2.protected和private的区别。基类的private私有成员,在派生类和外部都不能直接访问;但是基类protected的成员,在派生类中是可以访问的,在外部不能访问。

派生类从基类继承的成员变量该如何初始化呢?必须通过调用基类的构造函数来初始化从基类继承来的成员!
派生类调用基构造函数的顺序如下

1.先调用基类构造函数,构造从基类继承来的成员;
2.再调用派生类自己的构造函数,构造派生类自己的成员;
3.先调用派生类自己的析构函数,释放派生类自己占用的外部资源 ;
4.调用基类的析构函数,释放基类部分成员占用的外部资源;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值