我必须写一份申请才能在学校完成作业。为此,我们必须创建一个动态数组。我的问题是:
如果我创建一个包含动态指针的结构并复制它,内存也会被复制吗?
例如:
struct SomePointerStruct { int* p_array; }
如果我复制那个结构会怎样?还有,
是否需要清理原始指针?
最佳答案
默认情况下,c++ 中的对象是逐字节复制的。这意味着指针将被复制,你将得到两个指向同一个数组的指针。
要解决这个问题,您需要实现一个复制构造函数
,并且还应该覆盖operator=
。此外,您可能希望在完成后删除此数组,因此还要实现一个析构函数
。即“三法则”。
关于c++ - 动态指针和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19709507/