数组初始化语法

coo*_*roc 0 c++ arrays

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

pos[iter](1) += 12.0f / 900.0f;
Run Code Online (Sandbox Code Playgroud)

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

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

0x4*_*2D2 5

pos[iter](1) += 12.0f / 900.0f;
Run Code Online (Sandbox Code Playgroud)

pos可以是具有重载的类的数组,映射或对象operator[].pos[iter]返回一个对象(可以是一个函数指针,拉姆达或过载的一类operator()),并用为1的参数的函数调用最有可能返回到返回的对象,你可以使用变异其值的基准调用它+=.

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

  • 它也可以是指向函数指针的指针...只有太多的可能性...... (3认同)