Utilisation d'arguments de constructeur avec le même nom que les variables membres
Question originale :
Est-ce que il est permis selon la norme C d'initialiser les variables membres en utilisant le même nom que le constructeur arguments ?
Réponse :
Oui, le standard C permet cette approche. Le code initialise les variables membres en fonction des noms fournis dans les arguments du constructeur. L'exemple suivant illustre cela :
#include <cstdio> #include <vector> class Blah { std::vector<int> vec; public: Blah(std::vector<int> vec) : vec(vec) {} void printVec() { for (unsigned int i = 0; i < vec.size(); i++) printf("%i ", vec.at(i)); printf("\n"); } };
Référence standard :
La norme C (§12.6.2/7) stipule que « Les noms dans la liste d'expressions d'un mem-initializer sont évalués dans la portée du constructeur pour lequel le mem-initializer est spécifié."
Considérations supplémentaires :
L'exemple démontre également que l'utilisation de const std::vector
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!