首页 > 代码库 > C++ this指针

C++ this指针

成员函数不能定义 this 形参,而是由编译器隐含地定义。成员函数的函数体可以显式使用 this 指针,但不是必须这么做。
如果对类成员的引用没有限定,编译器会将这种引用处理成通过 this 指针的引用。

尽管在成员函数内部显式引用 this 通常是不必要的,但有一种情况下必须这样做:
当我们需要将一个对象作为整体引用而不是引用对象的一个成员时。
最常见的情况是在这样的函数中使用 this:该函数返回对调用该函数的对象的引用。

在普通的非 const 成员函数中,this 的类型是一个指向类类型的 const指针。
可以改变 this 所指向的值,但不能改变 this 所保存的地址。
在 const 成员函数中,this 的类型是一个指向 const 类类型对象的const 指针。
既不能改变 this 所指向的对象,也不能改变 this 所保存的地址。
不能从 const 成员函数返回指向类对象的普通引用。const 成员函数只能返回 *this 作为一个 const 引用。

例子见http://www.cnblogs.com/LubinLew/p/CppOperatorOverload-Summary.html