c++ - 当前对象的引用存储在内存中的什么位置?

标签 c++ compiler-construction compilation

我有一个简单的问题。我知道在编译程序后,当我调用一个函数时,会生成一个调用堆栈,其中包含参数、局部变量的空间、返回点和我负责的寄存器。

但是在像 C++ 这样的面向对象语言中,编译器在哪里存储对当前对象的引用? object->instanceMethod() 会将对象指针像参数一样存储在调用堆栈中?

我知道这个问题很笼统,谢谢你的回答

最佳答案

它是实现定义的,但在实践中你会发现大多数(所有?)C++ 编译器生成的代码将 this 指针作为隐藏的第一个参数传递给函数,因此你可以访问它而无需在方法签名中明确指定它。

关于c++ - 当前对象的引用存储在内存中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12422068/

相关文章:

compiler-construction - 程序员学习如何构建编译器有好处吗?

Java 编译器错误 : Missing Return Statement

c++ - 在函数中分配内存以返回给用户

c++ - 将对象 move 到 malloc 的内存中是否有效 C++?

compiler-construction - IntelliJ 12 无法与 JDK 1.7 一起正常工作

c++ - 删除不完整类型在 C++ 中不是错误时,是否存在真实案例?

c++ - RDTSC 开销的差异

c++ - gmock : Doing custom check that can fail

shell - 编译 Readline 时对 "tputs"的 undefined reference

c++ - 使用 g++ 编译多个 .cpp 和 .h 文件。我做对了吗?