C++_实例化对象,函数的执行顺序

0、前言

在我学了初始化列表的时候,作为笔记写了一篇文章,觉得挺简单的,然后又看了看别人的关于初始化列表的文章,原来里面还有效率、函数执行顺序等等细节。

写一个类A,一个类B(A作为成员属性),然后实例化,之前以为自己懂了,其实只是大概,今天就探究下到底每一步发生了啥。

1、代码

代码缩进删了,比较紧凑,好说清楚一些。

1、以有参构造的方式实例化类A的对象a,然后换行;

2、这一步是B的有参构造函数,因为有参数,所以将实参a传给形参aa的时候呢,调用了类A的拷贝构造函数;

3、传入参数后并不是就开始执行B有参构造函数体的内容,还有一步初始化成员变量的操作,所以会调用类A和类C的默认构造,即使类C并没有被用到,在这一步的时候也被初始化了;

4、最后,形参aa赋值给成员属性a,调用了A赋值运算符;打印了下B有参构造,执行完毕;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值