this指针
每一个对象都隐式地“包含”一个指针指向对象自身,称之为this指针。当对象调用成员函数时,会默认将对象自身传递给该函数,在函数体内不直接使用对象名,而是使用this指针,即this指针指向该对象,指向调用者。
例1:
附例1代码
//小问学编程
#include<iostream>
using namespace std;
class Circle
{
public:
Circle();
void printRadiusOnly();
private:
float radius;
float x_center;
float y_center;
};
Circle::Circle()
{
radius=10.0;
x_center=0.0;
y_center=0.0;
}
//this指针指向了调用者,谁调用了我,this指针就指向谁,非常通用
//对象在调用成员函数时,比如说c1.printRadiusOnly();
//会默认地将对象自身c1传递到函数体内,也就是说c1是一个隐形的参数
//在函数体内不能直接使用对象名来访问我们传递进来的对象,只能使用“this”来代替
void Circle::printRadiusOnly()
{
//隐式使用this指针
cout<<"radius "<<radius<<endl;
//在这种情况下,一般只写上面这一句
cout<<"this->radius "<<this->radius<<endl;
//在这种情况下,一般是把this给省略了,但也有必须把this写出来的情况
cout<<"(*this).radius "<<(*this).radius<<endl;//解引用
//测试this指针的值
cout<<"this指针的值:"<<this<<endl;
}
int main()
{
Circle c1;
c1.printRadiusOnly();
cout<<"对象c1的地址:"<<&c1<<endl;
cout<<endl;
Circle c2;
c2.printRadiusOnly();
cout<<"对象c2的地址:"<<&c2<<endl;
return 0;
}