在C++中,这个指针作为隐藏参数传递给方法,它实际上指向当前对象,但是'this'指针存储在内存中...堆栈,堆,数据在哪里?
该标准未指定this指针的存储位置.
当它在该函数的调用中传递给成员函数时,一些编译器将它传递到寄存器中,而其他编译器将它传递给堆栈.它还可以依赖于编译器选项.
关于你唯一能确定的是基本类型this的右值,所以你不能拿它的地址.
并非总是如此.
在预标准C++中,您可以分配给this,例如为了指示构造函数失败.这是在引入例外之前.指示构造失败的现代标准方法是抛出异常,这保证了有序清理(如果没有被用户的代码挫败,例如臭名昭着的MFC放置new错误).
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |