this指针是一个常量指针,指向的是当前正在使用的对象的首地址,可以用来访问当前对象的成员函数与成员变量,因此只有创建了对象this指针有了指向,this才有意义。
this指针的具体使用方式详见下方代码:
#include <iostream>
using namespace std;
class Student
{
public:
void setName(char *);
void setAge(int );
void print();
private:
char *name;
int age;
double score;
};
void Student::setName(char* name)
{
this->name = name;
}
void Student::setAge(int age)
{
this->age = age;
}
void Student::print()
{
cout << this->name << ":" << this->age << "岁" <<endl;
}
int main()
{
Student stu1;
stu1.setName("张三"); //此时调用的函数中this指向的是stu1对象的首地址
stu1.setAge(18);
stu1.print();
Student stu2;
stu2.setName("李四"); //此时调用的函数中this指向的是stu2对象的首地址
stu2.setAge(20);
stu2.print();
return 0;
}
打印的结果为:
张三:18岁
李四:20岁
在上述代码中,创建了一个Student类,并在main函数中分别创建了类的两个对象stu1与stu2,在创建stu1或者stu2的时候,this就指向stu1或stu2对象所在内存块的首地址,此时可以使用this指针调用stu1或stu2中的成员变量与成员函数。
注意以下三点:
1. this指针式常量指针,它的值不可被修改;
2. this指针成员函数内部使用;
3. 只有对象被创建之后this指针才有意义。
参考文献:c++中 this指针详解[通俗易懂]