搜尋

首頁  >  問答  >  主體

c++中this[i]的用法是什么语法?

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

巴扎黑巴扎黑2767 天前441

全部回覆(1)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 11:34:46

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

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

    回覆
    0
  • 取消回覆