通过程序理解this指针

    xiaoxiao2023-09-29  159

    通过VC++6.0实现以下程序

    #include <iostream> using namespace std; class Myclass { public: int get() const{ return i; } void set(int x) //当通过对象a调用这个函数(必须是非静态成员函数)时,该成员函数所特有的this指针(隐式形参)就会指向对象a(系统自动完成); //这之后,成员函数实现功能时的数据成员就自然而然的是对象a的数据成员 //总之,this指针能实现成员函数在实现功能时,使操作的数据成员具体化(具体所属哪个类的对象) { i= x; //等价于this->i=x; cout<<"this指针保存的内存地址为:"<<this<<endl; } private: int i; }; int main() { Myclass a; a.set(9); //通过对象调用成员函数——尽管所有类的成员函数是类的对象所共享的, //但是成员函数在定义功能时所涉及的数据成员对于不同对象而言,是不同的; //假如通过对象a调用类中的成员函数,则成员函数中的数据成员必须是对象a的, //但是通过类建立的对象也许不止一个,而成员函数如何正确的有针对性的调用对象A的数据成员, // 则需要通过this指针(成员函数所特有的)实现 //具体实现过程:见上面的成员函数 cout<<"对象a所在的内存地址为:"<<&a<<endl; cout<<"对象a所保存的值为:"<<a.get()<<endl; cout<<endl; return 0; }

    程序输出

    this指针保存的内存地址为:0019FF2C 对象a所在的内存地址为:0019FF2C 对象a所保存的值为:9 Press any key to continue
    最新回复(0)