Heim > Backend-Entwicklung > C++ > Wie können Eigenschaften in C 11 mithilfe von Syntax Sugar implementiert werden?

Wie können Eigenschaften in C 11 mithilfe von Syntax Sugar implementiert werden?

Barbara Streisand
Freigeben: 2024-10-27 21:07:30
Original
376 Leute haben es durchsucht

How Can Properties be Implemented in C  11 Using Syntax Sugar?

Eigenschaften in C 11

C#:

<code class="csharp">public Foo foo { get; private set; }</code>
Nach dem Login kopieren

C :

<code class="cpp">private:
    Foo foo;
public:
    Foo getFoo() { return foo; }</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage