我希望能够将 3 个值传递给一个对象,然后将其存储在一个名为 Vector3f 的类中。Vector3f 有 x,y,z 值;
IE:
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
作为参数。