this是一个指向对象自身的指针。一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果,this作用域是在类内部,只能在成员函数中使用
#include <iostream>
#include <string>
using namespace std;
class Stu_Info_Mange
{
int sno;
string sname;
int age;
int grade;
public:
Stu_Info_Mange(int s=0,string n="",int a=0, int g=0)
//Stu_Info_Mange(int s,string n,int a, int g)//构造函数,可以对变量不赋初值,但在调用时需要给出值
{
sno=s;
sname=n;
age=a;
grade=g;
}
void Setname(string sn)//使用this 指针进行赋值
{
this->sname=sn;
}
int Setage(int a)
{
this->age=a;
return (*this).age;
}
void print()
{
cout<<"name is"<<this ->sname<<endl;//显式this指针通过箭头操作符访问
cout<<"age is"<<(*this).age<<endl;//显式使用this指针通过圆点操作符
}
};
int main()
{
Stu_Info_Mange sim1;
sim1.print();
sim1.Setage(12);//使用this指针修改年龄
sim1.Setname("JACK");
sim1.print();
Stu_Info_Mange sim2(761,"张山",19,3);
sim2.print();
sim2.Setage(12);//使用this指针修改年龄
sim2.Setname("zhang san");
sim2.print();
return 0;
}
运行结果