Maison >développement back-end >C++ >Liste d'initialisation des membres et affectations de constructeurs : quand devez-vous utiliser laquelle ?
Liste d'initialisation vs affectations de constructeurs : différences internes
Lors de l'initialisation des membres de la classe, on peut choisir d'utiliser une liste d'initialisation de membres ou d'attribuer des valeurs au sein du corps constructeur. En interne, ces approches présentent des différences subtiles.
Liste d'initialisation de membres
Utilisation d'une liste d'initialisation de membres, comme le montre cet exemple :
MyClass::MyClass(): _capacity(15), _data(NULL), _len(0) { }
initialise les variables membres directement avant d'entrer dans le corps du constructeur. Ceci est particulièrement utile pour :
Affectations de constructeurs
D'autre part, l'attribution de valeurs dans le corps du constructeur, comme dans cet exemple :
MyClass::MyClass() { _capacity=15; _data=NULL; _len=0 }
effectue l'initialisation lors de l'exécution du constructeur. Cette approche est couramment utilisée pour les membres non constants et les membres qui peuvent être initialisés en fonction des paramètres du constructeur.
Comparaison du code généré
Généralement, les deux approches génèrent des code. Cependant, dans le cas de membres ou de références constants, seule une liste d'initialisation de membres peut les initialiser, car les affectations de constructeur entraîneraient des erreurs de compilation.
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!