您的位置:首页 > 其它

this->指针

2015-10-14 10:39 260 查看
#include <iostream>

using namespace std;

class point

{

public:
int a;
int b;
point(int x,int y)
{
a=x;
b=y;
}
void output(int a,int b)

   {

    this->a=a;
this->b=b;

   }

void output()
{
 cout<<a<<endl;
 cout<<b<<endl;
}

};

   void main()

   {

     point pt(3,3);
 
pt.output(5,5);
pt.output();

   

   }

/*----------------------------------------------------------------------------------

●this指针:C++提供的隐含的指针,指向对象本身,代表对象的地址,每当产生一个对象,就会产生一个this指针指向该对象本身,

●类是抽象的,并不占具体的物理内存,只有对象才是实例化的实体,能在内存空间存活的事物,

●问:一个类所有的对象调用的成员函数都是同一代码段,成员函数是怎么识别属于同一对象的数据成员呢?

○答:在对象调用pt.output(10,10)时,成员函数除了接受2个实参外,还接受到一个对象s的地址。这个地址被一个隐含的形参this指针所获取,这个地址被一个隐含的形参this指针所获取,它等同于执行this=&pt.所有对数据成员的访问都隐含地被加上前缀this->.例如:x=0等价于this->x=0

●函数重载条件:函数的参数类型不同,或者参数个数不同

○以下情况不能构成函数的重载:

(1)void output();

(2)int output();

○以下情况不能构成函数的重载(如只传递一个参数时,第一个函数的第二个参数有缺省值,因此匹配;第二个函数也匹配只传递一个参数的情形,这样两个函数都匹配,不能重载):

(1)void output(int a,int b=5);

(2)void output(int a);

-------------------------------------------------------------------------------------*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: