VC++复制构造函数使用的三种情况—整理范磊VC++

1

  

 上面不执行复制构造函数,17行将10000赋值给a:首先是进行类型转换转化为类(等价18行),然后调用构造函数创建一个临时对象,

并将该临时对象赋给a.

   2.


  对func函数:

                  接收的实参是主函数中a的副本,因此调用复制构造函数并将a的副本赋给func的形参one.

                  返回的是one的副本,因此又要调用复制构造函数将one的副本返回给主函数

这是复制构造函数的两种使用情况:按值(对象)接收和按值(对象)返回

3.

  23行调用复制构造函数来构造对象b

这是复制构造函数的第三种情况.

 复制构造函数也可以构造对象.

4.谭浩强C++:

     对象的赋值或者复制只针对其中的数据成员赋值,不对成员函数赋值,显然如果类的数据成员中包含动态分配的数据或指向动态分配的指针的话

当析构完原对象时,被赋值或者复制的对象中对应的数据成员会出现找不到原堆中空间的问题.

    对象的赋值是在对一个已经存在的对象赋值,因此必须先定义被赋值的对象,然后才能进行赋值.

    对象的复制则是从无到有地建立一个新对象,并使它与一个已有的对象完全相同(包括对象的结构和成员的值),也就是说在创建对象的同时

并用一个对象对该对象初始化.

5.普通构造函数与复制构造函数

     被调用情况:普通构造函数在程序中建立对象时被调用

                           复制构造函数在用已有对象对复制一个新对象时被调用



   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值