Maison > développement back-end > C++ > Comment fonctionne le chaînage de constructeurs en C ?

Comment fonctionne le chaînage de constructeurs en C ?

Susan Sarandon
Libérer: 2025-01-01 14:41:09
original
211 Les gens l'ont consulté

How Does Constructor Chaining Work in C  ?

Chaînage de constructeurs en C

Le chaînage de constructeurs, où un constructeur appelle un autre constructeur depuis son corps, est une pratique courante en C# pour l'initialisation objets avec des paramètres variables. C a une fonctionnalité similaire appelée délégation de constructeurs.

C 11 et versions ultérieures

Dans C 11 et les versions ultérieures, la délégation de constructeurs peut être utilisée pour réaliser le chaînage de constructeurs. La syntaxe est la suivante :

class Foo {
public:
  Foo(char x, int y);
  Foo(int y) : Foo('a', y) {}
};
Copier après la connexion

Le constructeur Foo(int y) appelle le constructeur Foo(char x, int y) avec la valeur par défaut pour x.

C 03 et Versions antérieures

C 03 ne prend pas en charge la délégation des constructeurs. Cependant, il existe deux méthodes de simulation :

  • Paramètres par défaut : Combinaison de plusieurs constructeurs avec des valeurs de paramètres par défaut.
class Foo {
public:
  Foo(char x, int y = 0);  // combines constructors (char) and (char, int)
  // ...
};
Copier après la connexion
  • Méthode d'initialisation : Partage de code commun entre les constructeurs via une initialisation privée méthode.
class Foo {
public:
  Foo(char x);
  Foo(char x, int y);
  // ...
private:
  void init(char x, int y);
};

Foo::Foo(char x)
{
  init(x, x + 7);
  // ...
}

Foo::Foo(char x, int y)
{
  init(x, y);
  // ...
}

void Foo::init(char x, int y)
{
  // ...
}
Copier après la connexion

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