C++ と同様に, クラスのメンバにつける static は, そのメンバがインスタンス ではなくクラス (型) に属することを意味する.
C++ との違いはないが, 一応サンプルコードを示しておく.
static.d
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 | import std.stdio;
class Mona{
static int value = 10;
}
void output(string name, int x){
writeln("static member ", name, ".value is ", x);
}
void main(){
Mona a = new Mona;
Mona b = new Mona;
output("a", a.value);
output("b", b.value);
a.value = 20;
// b.value = 20;
/*
a.valueを書き換えると b.value も書き換わる
*/
writeln();
output("a", a.value);
output("b", b.value);
}
|
static.d の実行結果は:
[cactus:~/code_d/d_tuts]% ./static
static member a.value is 10
static member b.value is 10
static member a.value is 20
static member b.value is 20