Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-10-27 21:07:30272parcourir

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>

C :

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

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>

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>

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!

Déclaration:
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