C++学习日志第二篇

本文详细介绍了 C++ 中的继承概念,包括基类与派生类的定义,派生方式的选择,同名覆盖的应用,以及派生类构造函数与析构函数的工作原理。此外还探讨了多继承和虚基类的概念。

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

1.2 继承与派生

1.2.1 基类与派生类

在已有类基础上定义一个新类,新定义的类称为原有类的派生类或子类,而原有类称为新定义的类的父类或基类。派生类继承了基类的所有属性和行为,并在此基础上补充新的行为和属性。

class <> : public <>

{

};

定义分两个过程:指定基类和定义新成员,不允许在派生类的成员函数中访问基类的私有成员。


派生方式:

public:使得父类的保护或公有成员在派生类中仍为共有成员或保护成员

protected:是的基类中的所有共有成员和保护成员在派生类中都为保护成员

private:使得基类中的所有共有成员和保护成员在子类中都为私有成员

注意:无论如何都不能在派生类中直接访问基类的私有成员,但是可以通过积基类的共有成员函数进行访问。


同名覆盖:在派生类中对基类原有但不合适的成员进行重新定义。而且进行重定义后,在派生类中调用的成员函数是派生类的成员函数。若想继续调用基类中的同名函数,则需使用作用域限定符。


1.2.2 派生类的构造函数和解析函数

由于基类的构造函数和解析函数不能被继承,因此对基类的原有数据成员的初始化必须由派生类的构造函数来完成。

具体过程:在声明一个派生类对象时,先自动调用基类构造函数生成一个积累对象,在调用派生类构造函数。当派生类对象生存期结束时,先调用派生类析构函数,在调用基类函数。

隐式调用:调用基类的默认构造函数(含有默认参数值或不带参数);

显式调用:在派生类的构造函数中指定要调用的基类构造函数,并传入派生类构造函数的部分参数值。

注意:除非基类有默认的构造函数,否则必须采用显式调用。


1.2.3 多继承

一个基类可以派生出多个派生类;一个派生类可以有多个基类;一个派生类还可以再派生出一个派生类,然后一直派生下去。

一个派生类的多个基类的构造函数调用顺序取决于在派生类中的声明顺序


1.2.4 虚基类

暂时放放;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值