c++之this指针探究

this指针

  每一个对象都隐式地“包含”一个指针指向对象自身,称之为this指针。当对象调用成员函数时,会默认将对象自身传递给该函数,在函数体内不直接使用对象名,而是使用this指针,即this指针指向该对象,指向调用者

例1:
c++之this指针探究
附例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;
}
上一篇:链表的逆序


下一篇:简单工厂模式