我知道要問爲什麼?是這個網站的一個不好的問題,因爲我們不知道。但我的意思是它作爲一個口語替代問,有什麼可能的原因?爲什麼不是 - > []在C++中的運算符? (解引用數組指針的下標運算符)
我發現自己寫,自然,
foo->[i];
並且是驚訝地得知,它沒有工作。我的意思是寫:
(*foo)[i];
我相信大部分人認爲已經明白我的意思,但要清楚,我想
bar.subscript(i);
foo->subscript(i);
就類似於
bar.operator[](i);
foo->operator[](i);
但這似乎並非如此。爲什麼?我確定我必須以某種錯誤的方式看待事情,但我無法弄清楚什麼。我知道的理論很少,因此非常感謝一位非專業人士的解釋。
如果在我的類比中沒有明顯的錯誤,那麼語言的設計者可能會將操作員排除在外的原因是什麼?它含糊不清? (?如果是這樣,作爲出錯的什麼)
我想提出一些意見到編輯,按@克里斯的建議,因爲我還沒有明確的,因爲我本來應該:
OP提出操作符 - > [],這兩者的組合。
- chris
他在問爲什麼他想要的東西不存在,並不是爲什麼他要編寫的代碼不起作用。
- Matthew'Cogwheel'奧蘭多
一個有趣的問題是「難以解析」。我不知道這個問題的答案。 – Yakk
@Yakk,我懷疑最大的蒙克效應。我正要對此發表評論。 – chris
因爲當時沒有人想到它,沒有人關心足夠的標準。這就是99%的「X似乎很好,爲什麼不C++」有問題的原因。對於這樣的問題尤其如此:告訴人們寫'(* x)。[i]'而不是'x - > [i]'更容易,而不是做所有改變標準文本的工作,測試它,確保沒有可怕的疏忽等等。 – GManNickG