Valeur et taille d'une variable std :: string non initialisée en c ++
Si une chaîne est définie comme ceci
std::string name;
Quelle sera la valeur de la chaîne non initialisée "nom" et de quelle taille?
source d'informationauteur Charzhard
Vous devez vous connecter pour publier un commentaire.
Parce qu'il n'est pas initialisé, c'est le constructeur par défaut qui est appelé. Alors :
Prendre un coup d'oeil : http://www.cplusplus.com/reference/string/string/string/
EDIT :
Comme indiqué dans C++11, §21.4.2/1 :
Ce n'est pas initialisée, son constructeur par défaut est appelé.
De http://en.cppreference.com/w/cpp/string/basic_string/basic_string:
Par défaut construit types définis par l'utilisateur ne sont pas initialisées. Le constructeur par défaut définit une chaîne vide (j'.e
""
) avec une taille/longueur de zéro.La Norme C++11, §21.4.2/1) décrit les résultats de défaut-de la construction d'un
std::basic_string
(dontstd::string
est une spécialisation) comme suit:Et Tableau 63 dit:
valeur est nulle , et la taille est de 0
Mais vous pouvez vérifier si la chaîne est vide ou non, par le vide()
Juste au cas où vous voulez vous assurer que dans votre application , cela
Similaire et une discussion plus détaillée est ici
l'initialisation des chaînes comme nulles vs chaîne vide