Eigenschaften in 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 Syntax Sugar
C 11 bietet keinen direkten Syntax Sugar für Eigenschaften, aber Sie können Ihren eigenen definieren. Mit unbenannten Klassen können Sie eine Struktur wie die folgende erstellen:
<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>
Diese Struktur ermöglicht Ihnen den Zugriff auf Mitglieder wie Eigenschaften:
<code class="cpp">Foo foo; foo.alpha = 10; // Equivalent to foo.setAlpha(10) int i = foo.alpha; // Equivalent to foo.getAlpha()</code>
Sie können diese Implementierung durch Hinzufügen von Getter weiter anpassen und Setter-Methoden und Erweiterung der Struktur, um den Zugriff auf Klassenmitglieder zu unterstützen.
Das obige ist der detaillierte Inhalt vonWie können Eigenschaften in C 11 mithilfe von Syntax Sugar implementiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!