static 属性

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

Previous topic

try-catch-finally

Next topic

型推論