this指针

C++ this 指针



C++ 类 & 对象 C++ 类 & 对象



在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。



友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。



下面的实例有助于更好地理解 this 指针的概念:



#include <iostream>

 

using namespace std;



class Box

{

   public:

      // 构造函数定义

      Box(double l=2.0, double b=2.0, double h=2.0)

      {

         cout <<"Constructor called." << endl;

         length = l;

         breadth = b;

         height = h;

      }

      double Volume()

      {

         return length * breadth * height;

      }

      int compare(Box box)

      {

         return this->Volume() > box.Volume();

      }

   private:

      double length;     // Length of a box

      double breadth;    // Breadth of a box

      double height;     // Height of a box

};



int main(void)

{

   Box Box1(3.3, 1.2, 1.5);    // Declare box1

   Box Box2(8.5, 6.0, 2.0);    // Declare box2



   if(Box1.compare(Box2))

   {

      cout << "Box2 is smaller than Box1" <<endl;

   }

   else

   {

      cout << "Box2 is equal to or larger than Box1" <<endl;

   }

   return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:



Constructor called.

Constructor called.

Box2 is equal to or larger than Box1

 

你可能感兴趣的:(this)