第一部分
this 指针的类型可理解为 Box*。
此时得到两个地址分别为 box1 和 box2 对象的地址。
实例:
#include <iostream>
using namespace std;
class Box{
public:
Box(){;}
~Box(){;}
Box* get_address() //得到this的地址
{
return this;
}
};
int main(){
Box box1;
Box box2;
// Box* 定义指针p接受对象box的get_address()成员函数的返回值,并打印
Box* p = box1.get_address();
cout << p << endl;
p = box2.get_address();
cout << p << endl;
return 0;
}
第二部分
在 C++ 中,成员变量和成员函数可以共用同名标识符,因此在类的成员函数中,如果需要访问成员变量,需要使用 this 指针来显式指定当前对象的成员变量。
举例来说,如果类中声明了一个名为 name 的成员变量,并且在成员函数中使用了与成员变量同名的形参,那么在函数中直接使用 name 将会引用函数的形参而不是成员变量。这时就需要使用 this 指针来指定当前对象的成员变量。例如:
class Person {
private:
string name;
public:
void setName(string name) {
this->name = name; // 使用 this 指针显式指定成员变量
}
};
在上述代码中,我们定义了一个名为 Person 的类,并在其中定义了一个成员变量 name。在成员函数 setName 中,我们使用了与成员变量同名的形参 name,在给成员变量赋值时使用了 this 指针来显式指定当前对象的成员变量,以避免形参与成员变量重名导致的错误。
当没有同名的形参时,也可以直接访问成员变量,使用 this->name 和直接使用 name 都可以。但是建议使用 this->name 来明确指明访问的是成员变量,增加代码的可读性和可维护性。
标签:Box,变量,成员,C++,函数,指针,name From: https://www.cnblogs.com/share0956/p/17462904.html