2013-06-04 4 views
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

Вы не можете сделать такую ​​вещь в копии с-тор. Используйте просто

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

Однако, нет никакой необходимости в копии с-тор здесь, так как по умолчанию Реализуемый копия с-тор будет делать одно и то же (memberwise-copy).

+0

Только что закончил исследование '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' '' '' '' '' '' '' '' ' Спасибо за подсказки. ^^ –

Смежные вопросы