默认复制构造函数及其问题
Default copy constructor & its problems
可能重复:
什么是"三条规则"?
为什么建议提供复制构造函数的实现,而不是使用编译器提供的"默认复制构造函数"?
如果您的类包含指针成员,这些指针成员是动态分配的,那么您需要提供自己的副本构造版本,因为默认版本只是对它们进行浅层复制。
事实并非如此。
默认的复制构造函数在99.9%的情况下都是完美的。
具有所属指针的类的例外。在这里,默认副本构造函数的浅层副本对于初学者来说并不能正常工作。
但是,你的类中永远不应该有指针,所以这就成了一个问题。为了明确这一点,任何拥有的指针都应该包含在智能指针(或容器类型(对象中。所以这不是问题。
如果您正在编写一个智能指针或类似容器的对象,那么您需要实现三规则。
相关文章:
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- constexpr构造函数需要常量成员函数时出现问题
- 有关 c++ 构造函数的问题
- 关于复制构造函数的一个棘手问题
- 复制构造函数隐式转换问题
- 构造函数 (C++) 中的 char 指针参数存在问题
- C++:关于使用 Stroustrup 示例移动构造函数/赋值的问题
- 关于 std::bitset 构造函数的几个问题?
- 构造函数和 G++ 编译配方的问题
- 在 boost::variant 中类 holden 的复制构造函数存在问题
- C++ 关于两个类构造函数的问题
- 在构造函数 c++ 中初始化属性时出现问题
- 空构造函数和值传递问题
- 我是否需要在虚拟继承类的构造函数中初始化基类以解决菱形继承问题?
- 复制和赋值构造函数的问题
- 变分模板递归构造函数问题
- C++中用户定义的构造函数出现问题
- C ++回测问题:如何检查构造函数在假定失败时是否失败(给定输入的无效参数)
- C++的抽象类继承和构造函数的问题
- 错误 C2280 / 在 std::vector 中实例化对象时复制构造函数出现问题?