7.C++ this指针

发布时间:2024年01月20日

????????每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。

????????那么这一块代码是如何区分那个对象调用自己的呢?C++通过提供特殊的对象指针,this指针,解决上述问题。

????????this指针指向被调用的成员函数所属的对象。this指针不需要定义,直接使用即可。

1.this指针的用途:

????????1.当形参和成员变量同名时,可用this指针来区分。

????????2.在类的非静态成员函数中返回对象本身,可使用return *this

1.当形参和成员变量同名时,可用this指针来区分:

例1:

class Person
{
public:

	Person(int age)
	{
		//1、当形参和成员变量同名时,可用this指针来区分
		this->age = age;
	}

	int age;
};

void test()
{
	Person p1(10);
	cout << "p1.age = " << p1.age << endl;
}

输出结果:

p1.age = 10

?2.在类的非静态成员函数中返回对象本身,可使用return *this:

class Person
{
public:

	
	Person& AddAge(Person p)
	{
		this->age += p.age;

		return *this;  //在类的非静态成员函数中返回对象本身
	}

	int age = 10;
};

void test()
{
	Person p1;
	cout << "p1.age = " << p1.age << endl;

	Person p2;
	p2.AddAge(p1).AddAge(p1).AddAge(p1);
	cout << "p2.age = " << p2.age << endl;
}

输出结果:

p1.age = 10
p2.age = 40

文章来源:https://blog.csdn.net/2303_76295261/article/details/135696465
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。