复制构造函数快捷方式
Copy constructor shortcut
我有一个有大约50名成员的班级。 其中 1 个是指针。因此,我自然必须创建自己的复制构造函数,复制所有内容并创建该对象的新实例。我的问题是:是否有快捷方式或某种特殊方法可以复制所有内容(就像默认复制构造函数一样),然后只处理该指针?而不是手动复制每个成员。
我会将您的指针包装到一个以您喜欢的方式执行复制的帮助程序类中。这样,您就可以使用默认的复制 ctor 保留大类。
改用智能指针,然后依赖类的默认复制构造函数。
标准智能指针(unique_ptr
、shared_ptr
)没有复制构造函数来复制其对象,但您可以汇总自己的对象。
既然你说默认副本不起作用,我就假设你的对象拥有 pointee。
如果您只需要一个可以正确清理的浅拷贝,请使用 C++11 或 boost 中的shared_ptr
。
如果您需要深层副本,我首先建议按值而不是指针存储包含的对象。然后,您可以免费获得副本,而不必担心额外的一组内存管理。
最后,如果这些都不是选项,我会编写一个处理深度复制语义的指针包装器(我不相信 boost 提供这样的类)。
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 请描述一下在 c++ 中在此类中定义构造函数的方式?
- 用于基于成员字段或函数创建比较器的快捷方式
- 用初始化列表和超类构造函数声明子类构造函数的正确方式
- 以支持继承的方式将自身shared_ptr添加到对象构造函数中的向量中
- 不同的构造函数方式
- 在C 中超负荷构造函数的合适方式是什么
- 矩阵类编写构造函数,解构器和复制构造函数的方式
- 由于您可以在C 中以两种方式声明复制构造函数,这是正确的方式
- 如何使用构造函数以类似的方式初始化"对象数组"
- C++成员函数定义类前缀快捷方式(也是模板)
- 构造函数的快捷方式
- 编写有条件可选构造函数的最佳方式
- 定义构造函数的两种不同方式
- 复制构造函数快捷方式
- 以不同方式实现可变参数构造函数的模板类:每个版本的优点和缺点是什么
- RAII 在两个构造函数之间进行选择的方式
- 如果在构造函数中使用宏,它可以以不同的方式扩展吗?
- 继承顺序C++以何种方式影响构造函数
- 转换构造函数的实际工作方式