我有一个简单的问题。我知道在编译程序后,当我调用一个函数时,会生成一个调用堆栈,其中包含参数、局部变量的空间、返回点和我负责的寄存器。
但是在像 C++ 这样的面向对象语言中,编译器在哪里存储对当前对象的引用? object->instanceMethod()
会将对象指针像参数一样存储在调用堆栈中?
我知道这个问题很笼统,谢谢你的回答
最佳答案
它是实现定义的,但在实践中你会发现大多数(所有?)C++ 编译器生成的代码将 this
指针作为隐藏的第一个参数传递给函数,因此你可以访问它而无需在方法签名中明确指定它。
关于c++ - 当前对象的引用存储在内存中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12422068/