云涯历险记

热爱可抵万难

云涯历险记

热爱可抵万难

C++知识点

C++ 知识点:this指针

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

可以单步调式感受一下:

#include <iostream>
#include <string>

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)
{
double a, b;
a = this->Volume();
b = box.Volume();
return a > b;
}
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;
}

可以看到this 是Box * 代表类成员指针,指针就是变量的地址。

images①-⑥代表执行步骤:

images