我正在用openSG和C++创建一个应用程序。
有人能告诉我,为什么这些行(174 me ):
Vec3f snakeDirection = (1,2,3);
std::cout << "direction"<< snakeDirection<<"\n";版画
direction 3,0,0我的场景的完整代码可以在这里找到:
http://pastie.org/9420616#20,177
发布于 2014-07-25 18:27:16
在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);或
Vec3f snakeDirection(1, 2, 3);或
Vec3f snakeDirection{1, 2, 3};或
Vec3f snakeDirection = {1, 2, 3};https://stackoverflow.com/questions/24961896
复制相似问题