C++学习笔记:this指针【Cherno】

C++学习笔记:this指针【Cherno】,第1张

老规矩,带着疑问看文章:

为什么要有this指针、this指针是干嘛的,this指针的运用场景;

1:为什么要有this指针:

这个原因很简单,就是为了让类中的函数知道“我这次该面对哪个实例”,为什么这么说呢?因为如果类中的函数不是内联函数或者静态函数【因为这两种函数它是没有this指针的】的话,其函数的实例只会编译一次,就是说一个类中的所有实例调用的函数A都是同一个函数实例A,那么这样的话,函数该怎么分辨传入实例是哪个呢?有人会说,传入哪个就用哪个呗。嗯~的确是这样的,但是想一想,会发现我们在写函数实例的时候并没有在形参表中传入对应的类案例,啊这...this指针!对,这个时候this指针就起到作用了,其实在一个案例调用一个本类中的函数时,就会将指向自己的指针传入函数,因为这个过程是隐式的,所以就不用自己写,但可以在函数中调用this指针,这是合法的;

所以this指针的作用就是为了让函数知道该 *** 作的实例到底是哪一个;

额...回答了两个问题,那么直接进入第三个问题;

3:this指针的运用场景:

当我们要在类函数中调用一个不属于本类且可以调用的函数时,我们需要用到this指针:

#include
#include

class temp;
int mul(temp *a);

class temp {
public:
	int x, y;

	temp(int a,int b):x(a),y(b){}

	void get() {
		std::cout<x*a->y;
}

int main() {

	temp t(1, 2);
	t.get();
}

当我们要返回调用对象时,我们可以返回this指针,当然返回的是一个指针;

要知道,this是一个temp*const 类的指针,所以this指针不可以改变其指向;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/707043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存