this
this指针概述
- this并不属于对象本身,不影响sizeof(对象)
- 作用域在于对象内部,非静态成员函数访问非静态成员时,编译器自动将对象本身的地址作为参数传递给成员函数,成员函数对数据成员的访问都要通过this进行
- 非静态成员函数用
return *this
返回对象本身 - 参数与变量名相同时
this -> n = n
- this本身一定是const指针
*编译器会将this指针解析成 A const
可以看到,this指针在成员函数开始执行前就开始构造,并在成员执行结束后清除。
对于常成员函数:this指针类型为const A * const
由于常成员函数只能访问常数据成员,不能修改它的值,因此this指针在常成员函数中指向一个常对象(const A * )的数据成员,即不能修改的值。