D-programming-this-pointer
提供:Dev Guides
Dプログラミング-_this_ポインター
Dのすべてのオブジェクトは、 this ポインターと呼ばれる重要なポインターを介して独自のアドレスにアクセスできます。 this ポインターは、すべてのメンバー関数への暗黙的なパラメーターです。 したがって、メンバー関数の内部では、これを使用して呼び出し元オブジェクトを参照できます。
私たちは_this_ポインタの概念を理解するために次の例を試してみましょう-
import std.stdio;
class Box {
public:
//Constructor definition
this(double l = 2.0, double b = 2.0, double h = 2.0) {
writeln("Constructor called.");
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
}
void main() {
Box Box1 = new Box(3.3, 1.2, 1.5); //Declare box1
Box Box2 = new Box(8.5, 6.0, 2.0); //Declare box2
if(Box1.compare(Box2)) {
writeln("Box2 is smaller than Box1");
} else {
writeln("Box2 is equal to or larger than Box1");
}
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Constructor called.
Constructor called.
Box2 is equal to or larger than Box1