c++ this指针

目录

前言

this指针

代码示例


前言

    this指针是c++里的一个关键字,一个对象的this指针不是对象的一部分,this指针是在访问非静态成员变量时编译器自动生成的,this的作用域是在类的内部。

this指针

    是c++里的一个关键字,也是一个const指针,他指向对象本身。this指针是隐含于每一个非静态成员函数内的一种指针,this指针不需要定义,是编译器自动生成的,直接使用即可。

    指针类型:const类型,即成员函数中不能给this指针本身赋值。

    this指针存储在栈上。

    this指针的使用情景:

      在类的非静态成员函数中返回类对象本身,可以直接使用 return *this;

      当参数与成员变量名相同时,如果需要操作,可以写成:this->n=n;(这里两个n不一样,不能写成n=n;)

    我们可以试着写一个类来调用打印其this指针:

class student{
public:
	int age;
	void print(){
		cout << this << endl; //打印this指针
	}
};

int main(){
	student *pstu = new student;
	pstu->print();    //调用函数打印类的this指针
	cout << pstu << endl;  //当前对象
}

     可以看到this指针和当前对象的值是一样的,说明this指针指向当前对象。

代码示例

    this指针的使用:

class student{
public:
	void print();  //类中写函数申明
	void Setname(char *name);
	void Setage(int age);
	void Setscore(int score);
	void show();
private:
	char *name;
	int age;
	int score;
};

void student::print(){ //在外面写函数内容,这样写更整洁
	cout <<"This:"<< this << endl;
}
void student::Setage(int age){
	this->age = age;  //因为形参名称和成员变量名称相同,所以用this以区别
}
void student::Setname(char *name){
	this->name = name;
}
void student::Setscore(int score){
	this->score = score;
}
void student::show(){
	cout << "name:" << this->name << endl;
	cout << "age:"<<this->age<< endl;
	cout <<"score:"<<this->score << endl;
}

int main(){
	student *pstu = new student;
	pstu->Setname("张三");
	pstu->Setage(20);
	pstu->Setscore(99);
	pstu->show();
	
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值