静的プロパティ

提供: RAD Studio
移動先: 案内検索

クラス:インデックス への移動

静的プロパティは Delphi 言語との互換性を向上するために C++Builder 2009 に実装されました。

クラス関数の static 宣言

プロパティにアクセスする関数 (取得メソッドや設定メソッド) が static で宣言されている場合は、オブジェクトを指定しないでクラスから直接プロパティを使用できます。次に例を示します。

class TMyClass : TComponent {
  static int x;
  static int GetX() { return x; }
  static void SetX( int i ) { x = i; }

  __property int X = { read = GetX, write = SetX }
};

TMyClass::X = 5;
int y = TMyClass::X;

Delphi でもプロパティの取得メソッドと設定メソッドとして "通常の" 静的メソッドが使用できます。これらの静的メソッドはクラス メソッドではなく、パラメータは隠蔽されないことに注意してください。次に例を示します。

class TTest{
  static int __fastcall GetCount();
  static void __fastcall SetCount(int I);
public:
  __property int Count = {read=GetCount, write=SetCount};
};

この場合は、プロパティを次のとおり使用できます。

int c = TTest::Count;
TTest t;
int i = t.Count;

C++ コンパイラは既にメンバ変数にマップされた静的プロパティをサポートしています。次に例を示します。

class TEncoding  {
   static int Prop;
 public:
   __property int Count = { read=Prop };
};
int f(TEncoding& t) {
   return t.Count;
}

関連項目