Cplusplus-cpp-this-pointer
提供:Dev Guides
C ++このポインター
C ++のすべてのオブジェクトは、 this ポインターと呼ばれる重要なポインターを介して独自のアドレスにアクセスできます。 this ポインターは、すべてのメンバー関数への暗黙的なパラメーターです。 したがって、メンバー関数の内部では、これを使用して呼び出し元オブジェクトを参照できます。
友達はクラスのメンバーではないため、友達関数には this ポインターがありません。 メンバー関数のみに this ポインターがあります。
このポインタの概念を理解するために次の例を試してみましょう-
#include <iostream>
using namespace std;
class Box {
public:
//Constructor definition
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