From 3ef0c0415538dee8efe3ed715ea84f26a0969b19 Mon Sep 17 00:00:00 2001 From: huihut Date: Wed, 13 Jun 2018 11:02:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20this=20=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f47faa6..6d7e042 100644 --- a/README.md +++ b/README.md @@ -110,11 +110,11 @@ volatile int i = 10; 2. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给 `this` 指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用 `this` 指针。 3. 当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。 4. `this` 指针被隐含地声明为: `ClassName *const this`,这意味着不能给 `this` 指针赋值;在 `ClassName` 类的 `const` 成员函数中,`this` 指针的类型为:`const ClassName* const`,这说明不能对 `this` 指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作); -5. 由于 `this` 并不是一个常规变量,所以,不能取得 `this` 的地址。 +5. `this` 并不是一个常规变量,而是个 `右值`,所以不能取得 `this` 的地址(不能 `&this`)。 6. 在以下场景中,经常需要显式引用 `this` 指针: - 1. 为实现对象的链式引用; - 2. 为避免对同一对象进行赋值操作; - 3. 在实现一些数据结构时,如 `list`。 + 1. 为实现对象的链式引用; + 2. 为避免对同一对象进行赋值操作; + 3. 在实现一些数据结构时,如 `list`。 ### inline 内联函数