gpt4 book ai didi

c++ - 为什么以及何时删除复制构造函数和 operator=

转载 作者:行者123 更新时间:2023-11-30 01:45:40 30 4
gpt4 key购买 nike

作为一个 C++ 新手,我想知道为什么明确地“禁用”或删除类的 = 运算符和复制构造函数是有用的:

SomeClass& operator=(SomeClass&) = delete;
SomeClass(SomeClass&) = delete;

我想如果这个类是单例的话,这是有意义的。但是还有其他情况吗? (也许这与性能问题有关?)

最佳答案

这与性能无关。只要复制您的类没有意义,即如果不清楚复制相关类意味着什么,您就禁止复制。

著名的例子是具有复杂内部状态的标准 IO 流和无法复制的 std::unique_ptr,因为它是指向其托管对象的唯一指针。

关于c++ - 为什么以及何时删除复制构造函数和 operator=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291938/

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