我如何使用已有的代码执行深层复制?

问题描述 投票:0回答:1

如何使用以下代码执行深度复制?我做了一些研究,但没有任何帮助。我听说我需要递归复制它,但是我该怎么做呢?关于深层副本的大多数帖子都显示与我的代码相似的代码,因此我看不到两者有什么不同。

OtherClass<int>* arr = nullptr;
int size = 0;

public:
copyConstructor(const copyConstructor& src){
if (src.arr) {

    delete[] arr;

    size = src.size;

    arr = new OtherClass<int>[size];

    for (int i = 0; i < size; i++) {

        arr[i] = src.arr[i];

    }

} 

else {

    size = 0;

    arr = nullptr;

}
}
c++ pointers deep-copy
1个回答
0
投票

由于您要复制每个成员,因此该课程的内容还可以。现在,您需要确保OtherClass :: operator =()正确复制了所有内容。我不知道是否是因为这里没有。

© www.soinside.com 2019 - 2024. All rights reserved.