我剛剛碰到這個代碼,我不知道它在做什麼,或者它是如何做它在做什麼數組初始化語法
pos[iter](1) += 12.0f/900.0f;
請問(1)初始化在位置的數組值iter爲1,然後添加(12.0f/900.0f)到它?我無法相信它是在循環中用來設置調試文本的位置,每個循環將下一行設置爲高y值(屏幕上的較低點)。 iter可以是0或1,具體取決於調試文本所在的列表。
我會理解它是否是靜態操作。
我剛剛碰到這個代碼,我不知道它在做什麼,或者它是如何做它在做什麼數組初始化語法
pos[iter](1) += 12.0f/900.0f;
請問(1)初始化在位置的數組值iter爲1,然後添加(12.0f/900.0f)到它?我無法相信它是在循環中用來設置調試文本的位置,每個循環將下一行設置爲高y值(屏幕上的較低點)。 iter可以是0或1,具體取決於調試文本所在的列表。
我會理解它是否是靜態操作。
pos[iter](1) += 12.0f/900.0f;
pos
可以是數組,地圖,或一個類的一個對象與一個重載operator[]
。 pos[iter]
返回一個對象(可能是函數指針,lambda或重載operator()
的類),並用參數1調用它。函數調用很可能返回對返回對象的引用,因爲您可以使用+=
對其值進行變異。
所以說清楚,(1)
沒有訪問任何東西的第二個元素。這只是對具有該參數的函數或方法的調用。該方法返回一些對象,該對象具有適當的過載operator +=
(可以是標量類或實際類)。
它也可能是一個函數指針的指針......太多的可能性...... – PlasmaHH 2013-03-26 13:45:43
'pos'是如何定義的? – 2013-03-26 13:39:59
爲了理解這一行,你必須包含'pos'聲明。它可能是一個函數指針的容器,例如 – 2013-03-26 13:41:36
這裏重要的是它不是你以前從未見過的奇怪語法。它只是訪問一個數組然後調用一個函數。 – 2013-03-26 13:47:29