gpt4 book ai didi

c++ - 通常使重量级类不可复制是一种好习惯吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:22 24 4
gpt4 key购买 nike

我有一个可能包含许多顶点的 Shape 类,我正在考虑将复制构造函数/复制赋值设为私有(private),以防止意外地不必要地复制我的重量级类(例如,按值传递而不是按引用传递)。

要复制 Shape,必须特意调用“克隆”或“复制”方法。

这是好的做法吗?我想知道为什么 STL 容器不使用这种方法,因为我很少想按值传递它们。

最佳答案

限制您的用户并不总是一个好主意。仅记录复制可能很昂贵就足够了。如果用户真的想要复制,那么通过提供复制构造函数来使用 C++ 的 native 语法是一种更简洁的方法。

因此,我认为真正的答案取决于上下文。也许你正在编写的真实类(而不是虚构的 Shape)不应该被复制,也许它应该被复制。但作为一种通用方法,我当然不能说应该通过强制用户使用显式方法调用来阻止用户复制大型对象。

关于c++ - 通常使重量级类不可复制是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2478717/

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