在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