0

我刚刚在代码中遇到过这个,我不明白它在做什么,或者它是如何做的

pos[iter](1) += 12.0f / 900.0f;

(1) 是否将位置 iter 处的数组值初始化为 1,然后将 (12.0f / 900.0f) 添加到它?我不敢相信它在循环中用于设置调试文本的位置,每个循环都将下面的下一行设置为高 y 值(屏幕上的较低点)。iter 可以是 0 或 1,具体取决于调试文本所在的列表。

我会理解它是否是静态操作。

4

1 回答 1

5
pos[iter](1) += 12.0f / 900.0f;

pos可以是数组、映射或具有重载的类的对象operator[]pos[iter]返回一个对象(可以是函数指针、lambda或具有重载 的类operator())并使用参数 1 调用它。函数调用很可能返回对返回对象的引用,因为您可以使用+=.

所以说清楚,(1)不是访问任何东西的第二个元素。它只是使用该参数调用函数或方法。该方法返回一些具有适当重载的对象operator +=(可以是标量或实际类)。

于 2013-03-26T13:41:47.397 回答