【C++】类创建对象的情况

最近经常在选择题里碰到问:下面程序的类中创建了几个对象的问题,开始做题很头疼,后来稍微总结了一下,发现也并不难。
这可能只是一部分,之后有其他类型还会继续更新~
或者大家碰到的其他问题,也可以留言给我,一起讨论咯

首先,大家都知道构造函数和拷贝构造函数会为类创建对象。

1.构造函数很好辨认,类名 对象名;即可创建对象。对构造函数有其他疑惑的宝宝可以参考前面的博客:https://blog.csdn.net/ly_6699/article/details/87870429。
2.调用拷贝构造函数的情况:
a.用一个对象去初始化同类型的另一个新对象
b.函数的形参对象调用函数进行形参和实参结合时
c.函数的返回值是类的对象,函数执行返回调用时
d.当被赋值对象不存在时,将类的对象进行赋值
例如:假设C 是已经写好的一个类,则下面程序一共创建了多少个C对象?

C a();      //此处表示对函数a的声明,不创建对象
C b(2);     //使用带参数的构造函数创建了一个对象
C c[3];       //使用无参构造函数,创建了三个对象
C &r = b;      //r 引用b,没有创建新对象
C d = b;        //使用拷贝构造函数创建了一个新对象
C *p = c;      //创建了一个指针指向对象c,没有创建新对象
C *p = new c(4);       //用new 新建了一个对象

注意:这里()和 [ ]的作用不同。
通过()赋值,通过[]申请空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值