C の C# スタイル プロパティ 11
C# では、プロパティを通じてゲッター メソッドとセッター メソッドを使用するフィールドに便利な構文が提供されます。例:
<code class="C#">public Foo foo { get; private set; }</code>
この構文は、フィールド値にアクセスして設定するタスクを簡素化します。
C には、伝統的に同等の構文がありません。代わりに、プライベート フィールドを手動で作成し、個別のゲッター メソッドとセッター メソッドを定義する必要があります。
<code class="C++">private: Foo foo; public: Foo getFoo() { return foo; }</code>
ただし、C 11 では、ラムダと名前のないクラスを利用して独自の言語機能を導入できます。そのような機能の 1 つは、C# スタイルのプロパティの実装です。以下に例を示します。
<code class="C++">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>
この実装では、C# のような構文を使用してフィールド値にアクセスし、変更できます。
<code class="C++">Foo instance; instance.alpha = 100; // sets the 'alpha' field to 100 float fooValue = instance.bravo; // retrieves the 'bravo' field value</code>
このアプローチは、データへのアクセスと操作のための便利な省略表現を提供します。 C コードに。 C 11 標準では直接サポートされていませんが、言語の柔軟性と拡張性を示しています。
以上がC 11 はラムダと名前のないクラスを使用して C# スタイルのプロパティをどのように模倣できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。