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!