C++中的this指针

this指针

在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。

在成员函数中,可以直接访问成员属性 和 调用 成员方法
在类外面调用成员方法
	对象.成员方法名(实参列表);
在所有的成员函数(构造函数)中,都隐含了一个参数this, this是一个该类类型的指针
	对象.成员方法名(实参列表); --->  成员方法名换名之后(&对象,实参列表)
	成员方法名换名之后(类型 *this,...)
在构造函数中,this指针指向正在被构造的对象
在普通成员函数中,this指针指向正在调用该成员方法的对象
#include <iostream>
#include <string>
using namespace std;


class Cube
{
private:
	int l;

public:
	Cube(int il)
	{
		l = il;
		cout << "构造函数:" << this << endl;
	}	
	int len(void)
	{
		return 4*this->l;
	}

};

int main()
{
	//len();
	Cube cb(10);
	cb.len(); // 对象.成员函数() 在实现过程中  会把对象的地址传递过去作为第一个参数 this
	
	return 0;
}


如果形参列表(局部变量)和成员变量同名的
	在函数中直接访问,局部优先原则,直接访问到的是局部变量
	同名的局部变量隐藏了成员变量
	可以使用 this->成员变量 的形式 来指明 访问的是成员变量  而不是局部变量
	this有一个作用,区分同名的局部变量和成员变量
vector<Employee>& Department::getEmployees()
{
	return this->employees;
}
void Department::setId(int id)
{
	this->id = id;
}
void Department::setName(string name)
{
	this->name = name;
}
void Department::setEmployees(vector<Employee>& employees)
{
	this->employees = employees;

可以用这种方式来初始化或者get(得到)你的类对象

总结用法:

一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;另外一种情况是当参数与成员变量名相同时,如this->n = n (不能写成n = n)。

一个学生可以有多本书一样,而这些书都是属于这个同学的;同理,如果有很多个同学在一起,那么为了确定他们的书不要拿混淆了,最好的办法我想应该就是每个同学都在自己的书上写上名字,这样肯定就不会拿错了。
同理,一个对象的多个成员就可看作是这个对象所拥有的书;而在很多个对象中间,我们为了证明某个成员是自己的成员,而不是其他对象的成员,我们同样需要给这些成员取上名字。在C++中,我们利用this指针帮助对象做到这一点,this指针记录每个对象的内存地址,然后通过运算符->访问该对象的成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HOVL_C++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值