有没有办法在C ++中实现复制构造函数,它只复制某些特定成员并为其他成员实现移动。
例如,我有一个班级
class partialCopy
{
int a;
int largeArray[1000] ;
}
现在假设使用移动构造函数我想在两个对象之间只保留largeArray
的一个副本,并且使用副本我可以在相同的两个对象之间保留整数a的单独副本。
编码时可能会出现这种情况。
有人可以就此分享想法吗?
答案 0 :(得分:5)
这是智能指针的工作:
class partialCopy {
int a;
std::shared_ptr<int, std::default_delete<int[]> > array;
};
这样您就不必担心这些事情 - 默认生成的特殊成员函数将为您做正确的事。