C 11 のプロパティ
C#:
<code class="csharp">public Foo foo { get; private set; }</code>
C :
<code class="cpp">private: Foo foo; public: Foo getFoo() { return foo; }</code>
C 11 構文シュガー
C 11 はプロパティ用の直接構文シュガーを提供しませんが、独自の構文シュガーを定義できます。名前のないクラスを使用すると、次のような構造を作成できます:
<code class="cpp">struct Foo { class { int value; public: int &operator=(const int &i) { return value = i; } operator int() const { return value; } } alpha; class { float value; public: float &operator=(const float &f) { return value = f; } operator float() const { return value; } } bravo; };</code>
この構造により、プロパティなどのメンバーにアクセスできます:
<code class="cpp">Foo foo; foo.alpha = 10; // Equivalent to foo.setAlpha(10) int i = foo.alpha; // Equivalent to foo.getAlpha()</code>
ゲッターを追加することで、この実装をさらにカスタマイズできます。セッター メソッドと構造を拡張してクラス メンバーのアクセスをサポートします。
以上がSyntax Sugar を使用して C 11 でプロパティを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。