永发信息网

C++构造函数什么时候会被调用

答案:1  悬赏:40  手机版
解决时间 2021-01-02 12:36
C++构造函数什么时候会被调用
最佳答案
1、对象在创建时使用其他的对象初始化
Person p(q); //此时复制构造函数被用来创建实例p
Person p = q; //此时复制构造函数被用来在定义实例p时初始化p
2、对象作为函数的参数进行值传递时
f(p); //此时p作为函数的参数进行值传递,p入栈时会调用复制构造函数创建一个局部对象,与函数内的局部变量具有相同的作用域
需要注意的是,赋值并不会调用复制构造函数,赋值只是赋值运算符(重载)在起作用
p = q; //此时没有复制构造函数的调用!
简单来记的话就是,如果对象在声明的同时将另一个已存在的对象赋给它,就会调用复制构造函数;如果对象已经存在,然后将另一个已存在的对象赋给它,调用的就是赋值运算符(重载)默认的复制构造函数和赋值运算符进行的都是"shallow copy",只是简单地复制字段,因此如果对象中含有动态分配的内存,就需要我们自己重写复制构造函数或者重载赋值运算符来实现"deep copy",确保数据的完整性和安全性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
没事吧小博美的腿受伤了,走路一瘸一拐的
二本军校有那些及2015年分数线是多少?
梦见涨洪水路被淹了,我又找到一条路
单选题Thisquestionisdifferent________that
十二星座婚纱图片大全
依次填入下列各句横线处的词语,最恰当的一组
熊猫多媒体智能一体机如何恢复系统
觐阳关(雨翁)阅读答案
量词填空一什么批评
21世纪二十四孝的故事作者是谁?
生日算命婚姻
开个馄饨店需要什么手续
单选题Don'tworry.__________mehelpyou.A.Le
老虎直播怎么今天注册不了账号,注册显示的是
中国移动的专款余额话费是什么,有什么用
推荐资讯
乐视1s手机怎么把手机的电话号码复制到手机卡
简述《三国演义》中的一个精彩的战斗场面。
sina-sin(1+a)=什么?
淮北市相山区人民检察院地址在哪?我要去那里
建筑公司行政处罚撤销后参与招投标活动中标,
你爱上我了吗 用英文怎么说
债的转移方式有哪两种?
---I beg your pardon! ---Oh, you _to me ca
为什么我找不到好的学习方法呢?平时都是死学
请问,2007高考大纲 word版谁有呀?,2007大纲 w
奥林巴斯微单大光圈怎么调
乐视1s手机没来电显示
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?