在初始化列表中复制对象
Copying object inside the initialization list
如何将Axes (Axes const &crAxes) { *this = crAxes; }
更改为Axes (Axes const &crAxes) : (*this)(crAxes) {}
,以便在初始化列表中复制对象(在X, Y和Z初始化为默认值之前)
改变形式:
struct Axes
{
Axes () : X(0.f), Y(0.f), Z(0.f) {}
Axes (Axes const &crAxes) { *this = crAxes; }
float X;
float Y;
float Z;
};
变成这样:
struct Axes
{
Axes () : X(0.f), Y(0.f), Z(0.f) {}
Axes (Axes const &crAxes) : (*this)(crAxes) {}
float X;
float Y;
float Z;
};
在copy c-tor中不能这样做。使用简单的
Axes(const Axes& rhs) : X(rhs.X), Y(rhs.Y), Z(rhs.Z) {}
但是,这里不需要copy c-tor,因为默认实现的copy c-tor会做同样的事情(memberwise-copy
)。
相关文章:
- 将包含不可复制对象的对插入到映射中
- 通用参考 l 值不复制对象
- 为什么具有 2 个参数参数的构造函数接受复制对象作为 1 个参数参数?
- 为什么从引用创建共享指针会复制对象?
- 当(且仅当)对象具有复制构造函数时,如何复制对象?
- 我的程序运行良好,可以复制对象,但是当我使用复制分配(=)时,它仍然可以正常运行.为什么不给错误
- 如何复制对象
- 如何构造不可移动不可复制对象的元组?
- 不可复制对象数组的 consexpr 初始化?
- 提升::可选与标准::不可复制对象的可选
- 如何在C++中通过引用复制对象
- 从指针复制对象
- 删除浅表的复制对象和源对象
- 使用realloc可以安全地重新分配琐碎的可复制对象的存储吗
- C 返回复制对象
- 如何将智能指针作为类属性来复制对象
- 为什么在复制对象时忽略顶级常量
- std::shared_ptr 在复制对象时导致问题
- 安全复制对象的替代方案
- 当类包含boost::container::flat_set时,复制对象时出错