c++中this[i]的用法是什么语法?
巴扎黑
巴扎黑 2017-04-17 11:32:46
0
1
437

在webkit中看到一段代码:
class ExecState : public Register { JSValue calleeAsValue() const { return this[JSStack::Callee].jsValue(); } ... }
其中JSStack::Callee是常量,不管是ExecState还是Register都没有对operator[]进行重载,所以想不明白this[JSStack::Callee]这样的用法是什么意思?

巴扎黑
巴扎黑

全部回覆(1)
伊谢尔伦

這裡跟operator[]的重載是沒有關係的,因為this是指向自己的指針,而*this才是一個ExecState實例。

那麼問題就是如何從C語言的層次來理解。 this[JSStack::Callee]其實是*(this + JSStack::Callee)。雖然我沒有了解webkit的程式碼,但我猜測calleeAsValue()的呼叫條件是這個實例在一個陣列中(或許是一個用陣列實現的堆疊?),這樣那句程式碼才有意義。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!