this指针的学习

this指针的一些特性
1它并不是对象本身的一部分,不影响对象的结果。且它的作用域是在类的内部。
当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。例如:调用data.SetMonth(9)等价于SetMonth(&data,9)
2 this 指针可以保存当前对象的地址
3 使用
【1】this指针只能在成员函数中使用
【2】只有获得一个对象后,才能通过对象使用指针
【3】在类的非静态成员函数中返回类对象本身的时候,直接用return*this;
【4】当参数与成员变量名相同时,如 this-> n =n;(不能写成n=n)
4作用
this指针,它作为非静态成员函数的隐含形参,对各成员的访问都是通过this指针。成员函数之所以能对此类的各个对象的数据区别开来,就是靠this指针,函数体里面对数据成员的访问,都会转化为this->数据成员的形式。

this指针记录每个对象的内存地址,通过“->”访问该对象的成员

例1
  在这里插入图片描述
程序中this指针的使用分析:
a.对象point1调用Point 类中的MovePoint函数的时候,point1对象的地址
传递给了this指针。
b MovePoint函数的原型应该是void MovePoint(Pointthis, int a, int b),第一个
参数是应该是指向该类对象的指针,定义函数成员的时候没有看到是因为,
这个参数在类中是隐含的,这样point1对象的地址传给了this指针.
所以MovePoint函数显式的写为:
void MovePoint(Point
this, int a, int b){ this->x+=a; this ->y+=b;}
c 可知point1对象调用该函数后,point1对象的数据成员被更新了值。过程如下:
point1.x+ = a; point1.y+ = b;

类的实例就是类的对象
例2
在这里插入图片描述

【1】a.set(9)等同于set(&a,9)
【2】this->i=x;这句话就表示把x的值赋值给当前的对象的私有成员函数i。也就是把9的值给了i
【3】 i此时等于9,再第6句程序的时候,就get到了9的值。
这就是在类的非静态成员函数中调用非静态成员
由例2 可知
this指针作用:
this指针最大的作用就是保存了当前对象的地址,并用指针的形式指向了
当前的对象
转自:http://www.cnblogs.com/uniqueliu/archive/2011/09/24/2189545.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值