На самом деле, это больше связано с инициализацией: когда вы «строите по умолчанию», ваши Vector3f result
члены x
, y
, z
будут инициализированы. Вы не всегда контролируете стоимость этого, особенно с «тяжелыми» участниками.
Вызов конструктора со всеми значениями элементов позволяет объекту инициализировать его элементы право в первый раз .
Но если вы действительно хотите сохранить некоторые промежуточные шаги, вы можете создать мутатор для класса Vector3f
, устраняя необходимость во временном:
class Vector3f {
...
Vector3f& operator+=( const Vector3f& other ) {
x += other.x;
y += other.y;
z += other.z;
return *this;
}
};
и используйте его как
Vector3f a( 1,2,3 );
a += Vector3f( 0,0,1 );