c++的类派生类的构造函数(四)

派生类的构造函数构造会先调用基类的默认构造函数,然后在调用派生类的构造函数
派生类的析构函数则相反 先调用派生类的析构函数在调用基类的构造函数
派生类构造函数 自底向上,析构函数 自上向底
如果要派生类构造函数想调用重载的基类构造函数那么就必须 D(): B(参数){} 拷贝构造函数
关于继承可以看我的这一篇添加链接描述

#include <iostream>
#include <string>
using namespace std;
class B{
	int b{ 0 };
	std::string name;
public:
	B(const B&b) :b{ b.b }, name(b.name){cout << "B类拷贝构造函数\n"; }
	B(int b, string n) :b(b), name(n){ cout << "B类构造函数\n"; }
};
class D :public B{
	double d{ 2.5 };
public:							//通过B(d) 调用B类拷贝函数,就不会报错说没有构造函数
	D(const D&d) :d(d.d), B(d){ cout << "D类拷贝函数\n"; }	// 在基类构造函数拷贝这样数据也不会被切割因为都赋予了
	D(double d, int b, string n) :B(b, n), d(d){ cout << "D类构造函数\n"; }   //吧d隐式转换b
};
int main(){
	D d(3.0, 2, "hello"); // 先调用构造函数
	D d2(d);	//将派生类对象值传到基类给基类赋值,然后在调用派生类拷贝函数
	while (true);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值