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