0

如何更改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;

};
4

1 回答 1

4

你不能在复制 c-tor 中做这样的事情。简单使用

Axes(const Axes& rhs) : X(rhs.X), Y(rhs.Y), Z(rhs.Z) {}

但是,这里不需要复制 c-tor,因为默认实现的复制 c-tor 会做同样的事情 ( memberwise-copy)。

于 2013-06-04T07:10:21.567 回答