C++继承的构造析构的顺序和继承方式以及优点

一.构造顺序:

1.无参构造:

在子类的初始化参数列表中,会自动调用父类的无参构造函数,从子类的初始化参数列表中跳转到父类的构造函数。


#include <iostream>
using namespace std;

class CF {
public:
	int m_cf;
	CF():m_cf(1){}
	
};
class CS :public CF {
public:
	int m_cs;
	/
	CS():CF(),m_cs(2){}
	
};
int main()
{
	CS cs;
	cout << cs.m_cf << "  " << cs.m_cs << endl;
	

	system("pause");
	return 0;
}

2.带有参数的构造:

想调用父类带参数的构造函数,则必须手动显式的指定调用。


#include <iostream>
using namespace std;

class CF {
public:
	int m_cf;

	CF(int a) :m_cf(a) {}
};
class CS :public CF {
public:
	int m_cs;

	//如果想调用父类带参数的构造函数,则必须手动显式的指定调用
	CS(int a) :CF(a), m_cs(2) {}
};
int main()
{
	
	CS cs2(20);
	cout << cs2.m_cf << "  " << cs2.m_cs << endl;


	system("pause");
	return 0;
}

定义子类对象,子类和父类的构造都会执行,顺序:先父类后子类

二.析构顺序:

析构顺序,先子类后父类。

因为定义的是子类对象,其生命周期结束,匹配自己类的析构函数,再回收对象本身的空间 在回收对象时,回收顺序和初始化顺序相反,回收子类自己的成员,如果有其他类的对象,则调用其类的析构函数 最后是继承的父类,调父类的析构。

三.继承方式

继承方式:描述了父类成员在子类中所表现的属性,决定了其在子类中的使用范围.

继承优点:

将一些功能相似的类中的公共的成员,抽离出来形成一个类,这个类即作为父类.
子类继承父类的同时,拥有了这些成员,公共的成员只需要在父类中维护一份即可。
当扩展子类时,不用在重复实现公共的方法了,专注于自己特有的方法即可。
提高了代码的复用性,扩展性,灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值