Maison >développement back-end >C++ >Comment puis-je créer des propriétés de style C# en C 11 ?

Comment puis-je créer des propriétés de style C# en C 11 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 12:40:02453parcourir

How can I create C#-style properties in C  11?

Obtention des propriétés de style C# en C 11

En C#, les propriétés fournissent une syntaxe élégante pour accéder aux variables membres de classe avec les méthodes getter et setter . En C 11, il n’existe pas d’équivalent direct à cette fonctionnalité. Cependant, avec certaines solutions de contournement, il est possible de simuler des propriétés de style C# dans C 11.

Utilisation de classes sans nom

Une approche consiste à utiliser des classes sans nom pour encapsuler le propriétés. Cela vous permet de créer des getters et des setters au sein de la classe imbriquée tout en fournissant une syntaxe simple pour accéder à la propriété de l'extérieur.

<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>

Gutters et setters personnalisés

Un autre L'option consiste à écrire vos propres getters et setters pour les variables membres de la classe. Cette approche vous permet d'adapter les getters et setters à vos besoins spécifiques.

<code class="cpp">private:
    int _foo;
public:
    int getFoo() { return _foo; };
    void setFoo(int value) { _foo = value; };</code>

Accès membre de la classe Holder

Dans les exemples ci-dessus, les propriétés sont directement accessibles en tant que membres de la classe englobante. Si vous souhaitez utiliser les propriétés en tant que membres d'une classe de détenteur, vous pouvez étendre le code pour inclure une couche d'accès aux membres de la classe de détenteur. Cette couche donnerait accès aux propriétés via la classe titulaire.

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