无涯教程-D语言 - this指针函数

36 阅读1分钟

D语言中的每个对象都可以通 this 访问自己的指针地址, this 指针是所有成员函数的隐式参数。

让我们尝试以下示例以了解 this 指针的概念-

import std.stdio;

class Box { public: //构造函数定义 this(double l=2.0, double b=2.0, double h=2.0) { writeln("Constructor called."); length=l; breadth=b; height=h; }

  </span><span class="kwd">double</span><span class="pln"> </span><span class="typ">Volume</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
     </span><span class="kwd">return</span><span class="pln"> length </span><span class="pun">*</span><span class="pln"> breadth </span><span class="pun">*</span><span class="pln"> height</span><span class="pun">;</span><span class="pln"> 
  </span><span class="pun">}</span><span class="pln">

  </span><span class="kwd">int</span><span class="pln"> compare</span><span class="pun">(</span><span class="typ">Box</span><span class="pln"> box</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
     </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="typ">Volume</span><span class="pun">()</span><span class="pln"> </span><span class="pun">&gt;</span><span class="pln"> box</span><span class="pun">.</span><span class="typ">Volume</span><span class="pun">();</span><span class="pln"> 
  </span><span class="pun">}</span><span class="pln">

private: double length; //长 double breadth; //宽 double height; //高 }

void main() { Box Box1=new Box(3.3, 1.2, 1.5); //实例化box1 Box Box2=new Box(8.5, 6.0, 2.0); //实例化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

参考链接

www.learnfk.com/d-programmi…