win32 – this 指针

this指针是存在与类的成员函数中,指向被调用函数所在的类实例的地址。

根据以下程序来说明this指针,

#include<iostream.h>
class Point
{ 
  int x, y;
 public:
   Point(int a, int b) { x=a; y=b;}
   void MovePoint( int a, int b){ x+=a; y+=b;}
   void print(){ cout<<"x="<<x<<"y="<<y<<endl;}
};
void main( )
{
   Point point1( 10,10);
   point1.MovePoint(2,2);
   point1.print( );
}

当对象point1调用MovePoint(2,2)函数时,即将point1对象的地址传递给了this指针。

MovePoint函数的原型应该是

void MovePoint( Point *this, int a, int b);

第一个参数是指向该类对象的一个指针,我们在定义成员函数时没看见是因为这个参数在类中是隐含的。这样point1的地址传递给了this,所以在MovePoint函数中便显式的写成:

void MovePoint(int a, int b) { this->x +=a; this-> y+= b;}

可以知道,point1调用该函数后,也就是point1的数据成员被调用并更新了值。
即该函数过程可写成

point1.x+= a; point1. y + = b;

this指针变量记录的是当前对象的内存地址,即this指针指向当前的对象

原文链接: https://www.cnblogs.com/strive-sun/p/14148642.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    win32 - this 指针

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/404769

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月25日 下午4:43
下一篇 2023年4月25日 下午4:43

相关推荐