开发者社区> 问答> 正文

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

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

展开
收起
a123456678 2016-03-09 16:56:10 2446 0
1 条回答
写回答
取消 提交回答
  • 这里跟operator[]的重载是没有关系的,因为this是指向自己的指针,而*this才是一个ExecState实例。

    那么问题就是如何从C语言的层面进行理解。this[JSStack::Callee]其实是*(this + JSStack::Callee)。虽然我没有了解过webkit的代码,但我猜测calleeAsValue()的调用条件是这个实例在一个数组中(或许是一个用数组实现的栈?),这样那句代码才有意义。

    2019-07-17 18:56:25
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载