数组初始化语法

时间:2013-03-26 13:39:15

标签: c++ arrays

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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