我制作了这个构造函数,我需要制作它的深层拷贝。我真的不明白深拷贝的含义。我知道它制作了一个具有自己动态内存的对象的独立拷贝,但我不明白这有什么需要。我也不确定如何实际实现深拷贝。有什么建议么?

这是我需要对其进行深层复制的构造函数:
任何人都可以提供一些语法帮助,比如骨架?

template<class t_type>
inline ALIST<t_type>::ALIST()
{
  t_type value;
  capacity=10;
  DB = new t_type[capacity];
  count=capacity;

  cout<<"Enter value: ";
  cin.clear();
  cin>>value;


  for(int i=0; i<capacity; i++)
  {
    DB[i]=value;
  }
}

最佳答案

What is the copy-and-swap idiom?

使用深拷贝以便您可以复制对象具有的所有信息,然后更改拷贝而不更改原始信息。从广义上讲,浅拷贝只会复制指针本身,但仍指向相同的信息。如果您不小心,这可能会导致数据意外更改。

关于c++ - 如何制作此构造函数的深层拷贝?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10677394/

10-11 18:01