在D中每个对象都有通过一个名为this指针,这个指针访问它自己的地址。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