如何将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;
};
答案 0 :(得分:4)
你不能在复制c-tor中做这样的事情。 简单地使用
Axes(const Axes& rhs) : X(rhs.X), Y(rhs.Y), Z(rhs.Z) {}
但是,这里没有复制c-tor,因为默认实现的复制c-tor会做同样的事情(memberwise-copy
)。