{
private:
CArray<B*,B*&> m_bs;
}
我想对一个A的指针进行深拷贝,请问有什么好的建议吗
4 个解决方案
#1
自己在类中new的,自己解决深拷贝,添加复制构造和赋值的实现
没有自己new,只是用了别的对象(比如string),那么是别的对象负责深拷贝,你不用管。
在你这个例子中,CArray本身不是指针,那么不用你管深拷贝。
如果你的代码是 CArray<B*,B*&> *m_pbs,那么要对m_pbs这个指针指向的对象进行深拷贝。
没有自己new,只是用了别的对象(比如string),那么是别的对象负责深拷贝,你不用管。
在你这个例子中,CArray本身不是指针,那么不用你管深拷贝。
如果你的代码是 CArray<B*,B*&> *m_pbs,那么要对m_pbs这个指针指向的对象进行深拷贝。
#2
你打算怎么进行深拷贝,就在复制构造函数中怎么去实现即可
#3
实现 "类的复制构造函数和类的赋值运算符重载函数"
#4
大尾巴猫说的有点道理
#1
自己在类中new的,自己解决深拷贝,添加复制构造和赋值的实现
没有自己new,只是用了别的对象(比如string),那么是别的对象负责深拷贝,你不用管。
在你这个例子中,CArray本身不是指针,那么不用你管深拷贝。
如果你的代码是 CArray<B*,B*&> *m_pbs,那么要对m_pbs这个指针指向的对象进行深拷贝。
没有自己new,只是用了别的对象(比如string),那么是别的对象负责深拷贝,你不用管。
在你这个例子中,CArray本身不是指针,那么不用你管深拷贝。
如果你的代码是 CArray<B*,B*&> *m_pbs,那么要对m_pbs这个指针指向的对象进行深拷贝。
#2
你打算怎么进行深拷贝,就在复制构造函数中怎么去实现即可
#3
实现 "类的复制构造函数和类的赋值运算符重载函数"
#4
大尾巴猫说的有点道理