C++ C++;向量值不正确
我在使用OpenSG和C++创建应用程序的时候。 有谁能告诉我,为什么会有这些台词(174ff): 我的场景的完整代码可以在这里找到:C++ C++;向量值不正确,c++,vector,opensg,C++,Vector,Opensg,我在使用OpenSG和C++创建应用程序的时候。 有谁能告诉我,为什么会有这些台词(174ff): 我的场景的完整代码可以在这里找到: < C++ >表达式>代码(1,2,3)< /代码>迫使编译器将括号内的逗号解释为顺序评价算子。 顺序求值运算符是一种二进制运算符,它将第一个操作数求值为void,并丢弃结果,然后求值第二个操作数并返回其值和类型。因此,表达式(1,2,3)将按以下方式计算: 首先计算并丢弃1,然后计算(2,3),并返回结果(2,3) 首先计算并丢弃2,然后计算3,并返回结果3
< C++ >表达式>代码(1,2,3)< /代码>迫使编译器将括号内的逗号解释为顺序评价算子。 顺序求值运算符是一种二进制运算符,它将第一个操作数求值为
void
,并丢弃结果,然后求值第二个操作数并返回其值和类型。因此,表达式(1,2,3)
将按以下方式计算:
1
,然后计算(2,3)
,并返回结果(2,3)
2
,然后计算3
,并返回结果3
(1,2,3)
的求值将返回3
因此,声明:
Vec3f snakeDirection = (1,2,3);
与声明相同:
Vec3f snakeDirection = 3;
您可能打算写的是:
Vec3f snakeDirection = Vec3f(1, 2, 3);
或
或
或
在C++中,表达式<代码>(1,2,3)迫使编译器将括号内的逗号解释为顺序的评价操作符。 顺序求值运算符是一种二进制运算符,它将第一个操作数求值为
void
,并丢弃结果,然后求值第二个操作数并返回其值和类型。因此,表达式(1,2,3)
将按以下方式计算:
1
,然后计算(2,3)
,并返回结果(2,3)
2
,然后计算3
,并返回结果3
(1,2,3)
的求值将返回3
因此,声明:
Vec3f snakeDirection = (1,2,3);
与声明相同:
Vec3f snakeDirection = 3;
您可能打算写的是:
Vec3f snakeDirection = Vec3f(1, 2, 3);
或
或
或
请创建一个。尝试摆脱
=
。您可能正在使用“3”(计算括号中的,
表达式的结果)调用一个单参数构造函数。请创建一个。尝试删除=
。您可能正在使用“3”(计算括号中的,
表达式的结果)调用一个单参数构造函数。
Vec3f snakeDirection{1, 2, 3};
Vec3f snakeDirection = {1, 2, 3};