this指针

在D中每个对象都有通过一个名为this指针,这个指针访问它自己的地址。this 指针是一个隐含的参数,所有的成员函数。因此,一个成员函数内,this 可以用来指调用对象。

让我们试试下面的例子就明白了this指针的概念:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3