C++ > CLI

C++/CLIについて色々と…



プロパティの次元設定

ref class Sample {
   private:
      array<int^> ^m_Val;

   public:
      property int Value[int]
      {
         int get(int _idx){ return m_Val[_idx]; }
      }
}

…とプロパティ設定することで

Sample ^hSmpl = gcnew Sample;
int val = hSmpl->Value[0];

というように、配列メンバの各要素にプロパティからアクセスできる。



メンバ変数へ参照、代入するだけのプロパティ設定

単純なゲッター・セッターだけのプロパティであれば、

private:
   int m_Value;

   property int Value;

とやるだけで、コンパイラがゲッターとセッターを作ってくれる。
イメージ的には

property int Value {
   int get( void ){ return m_Value; }
   void set( int _val ){ m_Value = _val; }
}

みたいな感じ。

Trivial Propertyと呼ぶらしい。

…ふと思ったが、間違ってるような気がしてきた…。
もしかして参照するメンバ変数はコンパイラ側が自動で生成するのではないだろうか…?
つまり上の例だとm_Valueが使われるわけではないっぽいよな。
最終更新:2009年02月25日 19:45
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。