C++ this 指针
在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。
友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。
下面的实例有助于更好地理解 this 指针的概念:
实例
#include<iostream>usingnamespacestd;
classBox{public:
// 构造函数定义Box(doublel=2.0, doubleb=2.0, doubleh=2.0){cout <<"Constructor called." << endl;
length = l;
breadth = b;
height = h;
}doubleVolume(){returnlength * breadth * height;
}intcompare(Boxbox){returnthis->Volume() > box.Volume();
}private:
doublelength; // Length of a boxdoublebreadth; // Breadth of a boxdoubleheight; // Height of a box};
intmain(void){BoxBox1(3.3, 1.2, 1.5); // Declare box1BoxBox2(8.5, 6.0, 2.0); // Declare box2if(Box1.compare(Box2)){cout << "Box2 is smaller than Box1" <<endl;
}else{cout << "Box2 is equal to or larger than Box1" <<endl;
}return0;
}
当上面的代码被编译和执行时,它会产生下列结果:
Constructor called. Constructor called. Box2 is equal to or larger than Box1