C++——三种继承方式

本文介绍了C++中的两种继承方式:单继承和多继承,详细阐述了单继承的特性、构造函数和析构函数的使用,以及多继承的特点和构造函数的调用顺序。此外,还讨论了虚基类的概念,解释了其在解决交叉派生和重复成员问题上的作用,并给出了有虚基类和无虚基类的区别示例。

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



一、单继承方式

先看代码:

#include <iostream>
#include <string>
using namespace std;

class A{
public:
	A()
	{ 
		cout << "A::A()    ";
	}
	
	~A()
	{ 
		cout << "A::~A()" << endl;
	}
};
class B :public A{
public:
	B()
	{ 
		cout << "B::B()    " << endl;
	}
	
	~B()
	{ 
		cout << "B::~B()    ";
	}
};
void func()
{
	cout << "constructor:  ";
	B b;
	cout << "destructor:   ";
}

void main()
{
	func();
	system("pause");
}
输出:


单继承方式:

        特性:继承了基类所有属性与行为,包括私有成员,但不允许派生类直接访问基类私有成员。


构造函数:

        派生类构造函数名(形参表):基类构造函数名(形参表){…}

要点:

        创建派生类对象时,程序首先创建基类对象,即基类对象应在进入派生类构造函数前被创建完成

        派生类构造函数应通过成员初始化表将基类信息传递给基类构造函数

        派生类构造函数应初始化派生类新增的数据成员

析构函数:

        派生类对象过期时,程序将首先调用派生类析构函数,然后调用基类的

虚析构函数:

        作用:和虚函数一样类似,在用基类指针释放派生类对象时候,为了能调用正确的析构函数。

        注意:当一个类有虚函数功能,它经常作为一个基类使用,并且它的派生类经常使用new来分配,那么它最好也使用虚析构函数,因为这样才能保证在释放实例对象的时候调用正确的析构函数


无虚析构函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值