C++ 继承

一、什么叫继承?

继承是从已有的类创建新类的过程,这使得创建和维护一个应用程序变得更容易,达到了重用代码功能和提高执行时间的效果(你父亲拥有的东西,你也可以拿着用)。
在C++ 类中,如类B继承于类A,则类A 叫做基类或者父类,则类B叫做派生类或者子类。

二、继承怎么用?

class <派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>.....
{
<派生类类体>
};

三、继承类型

当一个类派生自基类,该基类可以被继承为public、protected、或private三种类型,继承类型是通过访问修饰符指定的。
(1)共有继承(public):一个类派生自基类,基类的共有成员也是派生类的共有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问;
(2)保护继承(protected):当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员;
(3)私有继承(pvivate):一个类派生自私有基类时,基类的共有和保护成员将成为派生类的私有成员。

四、无法被继承的成员

(1)基类的构造函数、拷贝构造函数与析构函数;
(2)基类的重载运算符;
(3)基类的友元函数;

五、继承之后的成员函数的隐写/重写

(1)父类与子类有同名函数,调用的时候总是调用子类的函数,此时父类成员函数被隐藏;
(2)一般子类继承过来的函数不适合子类,或者需要扩展 ,则需要重写父类的函数;
(3)函数返回值与参数可相同可不同;

六、构造函数调用顺序

构造一个派生类时,先调用父类构造函数
再调用成员对象构造函数(只跟声明顺序有关);
最后调用自身构造函数;

七、析构函数调用顺序

与构造函数相反。

八、多继承与多重继承

1.多继承:一个派生类有多个基类;

2.多重继承:一个派生类作为其他派生类的基类;

3.多重继承菱形问题

(1)描述:类A 为类B和类C的基类,类B和类C为类D的基类;

(2)数据冗余问题:

当 D 类继承于 B 类与 C 类,B 类与 C 类有一个共同的基类时,在创建 D 类的对象时,A 类的构造函数将会调用两次,相当于创建两个 A 类对象。

(3)二义性问题:

A类中成员变量,可以通过B和C去访问,此时会存在两个同种含义的变量。

(4)解决方案:使用虚拟继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jun8086

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值