我希望能够将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);
请帮忙吗?
答案 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
的对象作为参数。