gpt4 book ai didi

c++ - 减少 operator= 和复制构造函数之间的代码重复

转载 作者:IT老高 更新时间:2023-10-28 22:16:32 25 4
gpt4 key购买 nike

我有一个需要非默认复制构造函数和赋值运算符的类(它包含指针列表)。有没有什么通用的方法可以减少复制构造函数和赋值运算符之间的代码重复?

最佳答案

没有“通用方法”来编写适用于所有情况的自定义复制构造函数和赋值运算符。但是有一个成语叫做“copy-&-swap”:

 class myclass
{
...
public:
myclass(myclass const&);

void swap(myclass & with);

myclass& operator=(myclass copy) {
this->swap(copy);
return *this;
}

...
};

它在许多(但不是全部)情况下都很有用。有时你可以做得更好。一个 vector 或一个字符串可以有一个更好的分配,如果它足够大,它可以重用分配的存储。

关于c++ - 减少 operator= 和复制构造函数之间的代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1477145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com