C/C++教程

C++面向对象中的this指针

本文主要是介绍C++面向对象中的this指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

作用:指向成员函数所作用的对象
非静态成员函数中可以直接使用this来代表指向该函数作用的对象指针
例如:

class Complex{
	public:
		double real, imag;
		void Print(){ cout << real << "," << imag;}
		Compelx(double r, double i): real(r), iamg(i) { }
		Compelx AddOne(){
			this->real++; // 等价于real++;
			this->Print(); // 等价于Print()
			return *this
		}
};
int main(){
	Complex() c1(1,1), c2(0,0);
	c2 = c1.AddOne();  输出2,1
	return 0;
}

其实对比下面代码中的替换会理解得更清楚一点

class A{
	int i;
	public:
		void Hello() { cout<< i << "hello" << endl;}
		// 替换: void Hello(A *this){ cout << this->i << "hello" << endl; }
};
int main(){
	A *p = NULL;
	p->Hello();
	// 替换 Hello(p);
}
// 也就是非静态成员函数其实最前面缺省了一个this指针,他指向了对象本身

this指针和静态成员函数

  1. 静态成员函数不能使用this指针
  2. 静态成员函数并不是具体作用某个对象的
  3. 静态成员函数的参数个数就是真实写出来的参数个数
这篇关于C++面向对象中的this指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!