Maison > développement back-end > C++ > Comment les propriétés peuvent-elles être implémentées dans C 11 à l'aide de Syntax Sugar ?

Comment les propriétés peuvent-elles être implémentées dans C 11 à l'aide de Syntax Sugar ?

Barbara Streisand
Libérer: 2024-10-27 21:07:30
original
380 Les gens l'ont consulté

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

Propriétés en C 11

C#:

<code class="csharp">public Foo foo { get; private set; }</code>
Copier après la connexion

C :

<code class="cpp">private:
    Foo foo;
public:
    Foo getFoo() { return foo; }</code>
Copier après la connexion

C 11 Syntax Sugar

C 11 ne fournit pas de sucre de syntaxe direct pour les propriétés, mais vous pouvez définir le vôtre. À l'aide de classes sans nom, vous pouvez créer une structure comme la suivante :

<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>
Copier après la connexion

Cette structure vous permet d'accéder aux membres comme les propriétés :

<code class="cpp">Foo foo;

foo.alpha = 10; // Equivalent to foo.setAlpha(10)
int i = foo.alpha; // Equivalent to foo.getAlpha()</code>
Copier après la connexion

Vous pouvez personnaliser davantage cette implémentation en ajoutant un getter et les méthodes setter et l'extension de la structure pour prendre en charge l'accès des membres de la classe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal