通过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