C++知识文档四_this指针

来源:互联网 发布:华为云计算认证培训 编辑:程序博客网 时间:2024/06/06 06:53

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
原创粉丝点击