2013-03-26 124 views
0

我刚刚碰到这个代码,我不知道它在做什么,或者它是如何做它在做什么数组初始化语法

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

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

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

+3

'pos'是如何定义的? – 2013-03-26 13:39:59

+1

为了理解这一行,你必须包含'pos'声明。它可能是一个函数指针的容器,例如 – 2013-03-26 13:41:36

+0

这里重要的是它不是你以前从未见过的奇怪语法。它只是访问一个数组然后调用一个函数。 – 2013-03-26 13:47:29

回答

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

pos可以是数组,地图,或一个类的一个对象与一个重载operator[]pos[iter]返回一个对象(可能是函数指针,lambda或重载operator()的类),并用参数1调用它。函数调用很可能返回对返回对象的引用,因为您可以使用+=对其值进行变异。

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

+3

它也可能是一个函数指针的指针......太多的可能性...... – PlasmaHH 2013-03-26 13:45:43