Maison > Article > développement back-end > Les arguments du constructeur et les variables membres peuvent-ils avoir des noms identiques ?
Utilisation d'arguments de constructeur et de noms de variables membres identiques
Question :
Est-il permis de initialisez les variables membres en utilisant les mêmes noms que les arguments du constructeur, comme illustré dans ce qui suit code ?
class Blah { std::vector<int> vec; public: Blah(std::vector<int> vec): vec(vec) {} };
Réponse :
Oui, cette pratique est entièrement conforme à la norme C. Selon la section 12.6.2/7 de la norme :
Names in the expression-list of a mem-initializer are evaluated in the scope of the constructor for which the mem-initializer is specified.
Cela implique que dans la liste d'initialisation du constructeur, les variables membres peuvent être référencées en utilisant les mêmes noms que les arguments du constructeur. Ainsi, le code que vous avez fourni est à la fois légal et garanti de fonctionner correctement.
Informations supplémentaires :
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!