将值传递给Vector3f

时间:2013-04-20 15:41:13

标签: c++ class

我希望能够将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);

请帮忙吗?

3 个答案:

答案 0 :(得分:3)

如果构造函数采用单个Vector3f参数,则必须将其传递给单个Vector3f对象,并且三个浮点数将不起作用。但你可以用一行写出来:

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

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

答案 1 :(得分:2)

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

虽然使用C++11,但您可以执行Object myObject({0, 10, 20});

答案 2 :(得分:0)

如果没有其他信息,您应该采取第二种方式:

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

或者

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

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