我刚刚在代码中遇到过这个,我不明白它在做什么,或者它是如何做它正在做的事情
pos[iter](1) += 12.0f / 900.0f;
(1)将数组的值初始化为1,然后加上(12.0f / 900.0f)吗?我不敢相信它是在循环中用于设置调试文本的位置,每个循环将下面的下一行设置为高y值(屏幕上的较低点)。 iter可以是0或1,具体取决于调试文本所在的列表。
我会理解它是否是静态操作。
答案 0 :(得分:5)
pos[iter](1) += 12.0f / 900.0f;
pos
可以是具有重载operator[]
的类的数组,映射或对象。 pos[iter]
返回一个对象(可能是一个函数指针,lambda或一个带有重载operator()
的类),并使用参数1调用它。函数调用最有可能返回一个引用返回的对象,因为您可以使用+=
来改变其值。
所以为了说清楚,(1)
没有访问任何东西的第二个元素。它只是用该参数调用函数或方法。该方法返回一些具有operator +=
的适当重载的对象(可以是标量或实际类)。