将值传递到Vector3f

Passing values into a Vector3f

本文关键字:Vector3f 值传      更新时间:2023-10-16

我希望能够将3个值传递给一个对象,然后存储在一个名为Vector3f的类中。Vector3f有x,y,z值;

即:

Object(Vector3f Position); //Class constructor
Object myObject(0,10,20); //Declare object

这样对吗?

或者我必须这样做:

Vector3f vect(0,10,20);
Object myObject(vect);

请帮忙好吗?

如果构造函数接受单个Vector3f参数,则必须向其传递单个Vector3f对象,三个浮点数将不起作用。但是你可以用一行写:

Object myObject(Vector3f(0, 10, 20));

你也可以声明一个额外的构造函数来接受三个浮点数

第二个,因为多参数构造函数不能隐式转换

虽然C++11可以做Object myObject({0, 10, 20});

如果没有额外的信息,您应该采用第二种方法:

Vector3f vect(0,10,20);
Object myObject(vect);

 Vector3f myObject(vect(0,10,20));

这将首先创建一个Vector3f的对象,然后将其作为参数传递给Object类的构造函数,该构造函数将Vector3f的对象作为参数。