C++知识文档四_this指针

this指针

在每一个成员函数中都包含一个指向对象的首地址的指针,称为this指针,既指向对象本身的指针。

在32为机器下占4字节大小,利用寄存器ecx保存对象的首地址,并以寄存器传参的方式传递到成员函数中,这便是this指针的由来,并将这种调用方式称为thiscall。

例3、演示this指针的作用

#include<iostream>

usingnamespace std;

classCB;

classCA

{

public:

   void Func(CB *pTest1);

};

classCB

{

public:

   void Print()

   {

      cout<<"CallCB::Print()"<<endl;

   }

   CB &GetSelf()

   {

      return *this;

   }

   void Print2(CA *pObj2);

};

voidCA::Func(CB *pTest1)

{

   pTest1->Print();

}

voidCB::Print2(CA *pObj2)

{

   pObj2->Func(this);

}

voidmain()

{

   CA objA;

   CB objB;

   objA.Func(&objB);

   objB.GetSelf().Print(); 

}

类和结构体的异同:结构体的成员缺省是public的,类的成员缺省是private的;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值