【发布时间】:2021-11-28 01:24:33
【问题描述】:
我的计算机科学教授的问题提出了一个有趣的问题,我很好奇它的答案是什么。
您的复制赋值运算符对数组进行了浅拷贝。为什么这是有问题的?提供一个可能导致您的程序出错的场景。
首先,我知道复制赋值运算符用于将一个对象的数据复制到另一个对象,通常使用深拷贝,但我不确定使用浅拷贝会出现什么问题。
【问题讨论】:
-
提示:如果数组分配在堆上会发生什么?
-
听起来你的教授听不懂Rule of Three。如果你的析构函数理解浅拷贝,它们就不是问题。
-
根据 Silvio Mayolo 的评论,您需要确定 who owns the array?
-
这个问题需要更多的上下文,因为它假设了你的课程。 (也许这个问题是针对特定类的,而不是作为一般查询?)浅拷贝本身不足以导致错误。举个简单的例子,假设你愿意泄漏内存。如果你的析构函数不释放资源,那么浅拷贝在任何情况下都不会导致错误。还需要一些东西,一个浅拷贝加上你的实现中的其他东西。
标签: c++