gpt4 book ai didi

c++ - 基类不应该有成员复制?

转载 作者:行者123 更新时间:2023-12-01 14:24:56 25 4
gpt4 key购买 nike

我正在阅读 Stroustrup 的C++ 之旅,其中有一行:

To complement =default, we have =delete to indicate that an operation is not to be generated. A base class in a class hierarchy is the classical example where we don't want to allow a memberwise copy.

作为复制/移动语义的新手,我很难理解为什么基类不想拥有成员复制。我认为基类将负责复制其成员,而派生类将负责复制其余部分。任何例子将不胜感激。

最佳答案

因为它并不总是有意义。

如果你有一个类,Person,带有简单的字段,那么拥有某种默认的复制/移动构造函数是有意义的。毕竟这是一个数据类。

当你的类正在使用一些其他类型的资源(如流、数据库连接、套接字等)时出现问题,你真的不想复制它们 - 所以我们通过告诉编译器不要实现一个错误来防止错误这个的默认拷贝(尽管移动可能就好了)。

关于c++ - 基类不应该有成员复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63189947/

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