gpt4 book ai didi

c++ - 在 C++ 中编写复制构造函数和赋值运算符的 list

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

请列出复制构造函数和赋值运算符在 C++ 中需要执行的任务,以保持异常安全、避免内存泄漏等。

最佳答案

首先确定您确实需要支持拷贝。大多数情况下并非如此,因此禁用两者是可行的方法。

有时,您仍需要从多态层次结构中提供对类的复制,在这种情况下:禁用赋值运算符,编写( protected ?)复制构造函数,并提供虚拟 clone() 函数。

否则,如果您正在编写一个值类,您将回到 Coplien 的正交规范形式的领域。如果您有一个无法简单复制的成员,则需要提供一个复制构造函数、一个析构函数、一个赋值运算符和一个默认构造函数。此规则可以细化,例如:The Law of The Big Two

我还建议您查看 C++ FAQ regarding assignment operators ,并在 copy-and-swap idiomGOTW .

关于c++ - 在 C++ 中编写复制构造函数和赋值运算符的 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/214891/

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