0

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

请问有什么帮助吗?

4

3 回答 3

3

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

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

您还可以声明一个额外的构造函数来代替接受三个浮点数。

于 2013-04-20T15:43:57.307 回答
2

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

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

于 2013-04-20T15:45:35.870 回答
0

如果没有其他信息,您应该按照第二种方式进行:

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

或者

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

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

于 2013-04-20T15:42:52.940 回答