早教吧作业答案频道 -->其他-->
“如果一个类包含指向另一个对象的指针数据成员,应为该类提供复制构造函数。”那位大虾给解释一下
题目详情
“如果一个类包含指向另一个对象的指针数据成员,应为该类提供复制构造函数。”那位大虾给解释一下
▼优质解答
答案和解析
这就是所谓的深拷贝,C++默认的对象复制方式是按位拷贝(通称浅拷贝),(赋值也是),即将所有的数据元素按照物理的字节排列原样地拷贝被复制(赋值也是)对象里,正常情况下没有问题,因为类的每个数据成员都有自己独自的空间,但是一旦该成员是指针时,问题就出现了,虽然两个指针都有自己的空间,但是因为复制的是指针的值,结果就是这两个指针指向了同一个空间,也就是说,凡是赋值的都共享同一块空间,带来的问题主要有两种:1、访问不可知空间----通过一个指针释放了该空间,另外一个指针还指向该区间,2、某一个修改了,别的也变了(如同全局变量),当然还有内存泄漏的问题,为避免这个问题,该类必须自定义复制构造函数,在这里可以为每个指针重新分配空间,并完成指针指向目标的严格复制,可以避免刚才说的问题1、2,但是3不能避免。实际上,这种场合下不仅需要自定义复制构造函数,还需要重载赋值运算符,并且还要自定义析构函数,其详细语法格式和探讨参见比较深入的C++教材
看了“如果一个类包含指向另一个对象...的网友还看了以下:
( )是指作为外包服务提供商为其他行业金融机构提供信息科技外包服务的银行业金融机构。A.关联机 2020-05-27 …
下岗失业人员小额担保贷款是指银行在政府指定的贷款担保机构提供担保的前提下,向中华 2020-05-30 …
平均指标因素分析建立的指数体系由三个指数构成,即可变构成指数,固定构成指数和结构变动影响指 2020-06-07 …
呼吸便是梵唱,脉搏跳动就是钟鼓,身体便是寺宇,两耳就是菩提.这里两耳就是菩提什么意思?若菩提指的是 2020-06-24 …
法国布尔巴基学派提出的序结构,代数结构和拓补结构各指的是什么? 2020-07-03 …
反映总体结构变动的平均指标指数是().A可变构成指数;B固定构成指数;C结构影响指数;D平均数指数 2020-07-22 …
关于大肠杆菌总核酸的提取纯化提取液中既有DNA也有RNA,它提取RNA的原理是利用核酸酶在苯酚作用 2020-07-29 …
这应该是一种用法,而不是成语。它是病句解析的解释中的一句话,原句是:检查句中的并列结构。并列结构是指 2020-11-26 …
B分析组成生物体的4种重要有机物的组成及功能,回答下列问题:(1)A一般提指;E在动物细胞中是指.( 2020-12-21 …
关于英语的闭音节英语的闭音节不是说1.辅+元+辅2.元+辅这两种情况吗?那它是指这个单词的构成是这样 2020-12-21 …