Erzielen von Eigenschaften im C#-Stil in C 11
In C# bieten Eigenschaften eine elegante Syntax für den Zugriff auf Klassenmitgliedsvariablen mit Getter- und Setter-Methoden . In C 11 gibt es kein direktes Äquivalent zu dieser Funktion. Mit einigen Problemumgehungen ist es jedoch möglich, Eigenschaften im C#-Stil in C 11 zu simulieren.
Verwendung unbenannter Klassen
Ein Ansatz besteht darin, unbenannte Klassen zu verwenden, um die zu kapseln Eigenschaften. Dadurch können Sie Getter und Setter innerhalb der verschachtelten Klasse erstellen und gleichzeitig eine einfache Syntax für den Zugriff auf die Eigenschaft von außerhalb bereitstellen.
<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>
Benutzerdefinierte Getter und Setter
Andere Die Option besteht darin, eigene Getter und Setter für die Klassenmitgliedsvariablen zu schreiben. Dieser Ansatz ermöglicht es Ihnen, die Getter und Setter an Ihre spezifischen Bedürfnisse anzupassen.
<code class="cpp">private: int _foo; public: int getFoo() { return _foo; }; void setFoo(int value) { _foo = value; };</code>
Zugriff für Inhaberklassenmitglieder
In den obigen Beispielen sind die Eigenschaften direkt zugänglich als Mitglieder der umschließenden Klasse. Wenn Sie die Eigenschaften als Mitglieder einer Halterklasse verwenden möchten, können Sie den Code erweitern, um eine Zugriffsschicht für Halterklassenmitglieder einzuschließen. Diese Ebene würde den Zugriff auf die Eigenschaften über die Halterklasse ermöglichen.
Das obige ist der detaillierte Inhalt vonWie kann ich C#-ähnliche Eigenschaften in C 11 erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!