Je suis un débutant C++, donc désolé si la question est trop basique.C++ vide Constructeur de chaîne
J'ai essayé de collecter la chaîne constrcturs et de les essayer tous (pour m'en souvenir).
string strA(); // string(); empty string // incorrect
string strB("Hello"); // string(const char* str)
string strC("Hello",3); // string(const char* str, size_type length)
string strD(2,'c'); // string(size_type lenght, const char &c)
string strE(strB); // string(const string& s)
cout << strA << endl;
cout << strB << endl;
cout << strC << endl;
cout << strD << endl;
cout << strE << endl;
Tous les travaux à l'exception du strA. Il imprime "1". Pourquoi? Quel est le type de la strA dans ce cas? Comment puis-je vérifier le type de choses quand je suis incertain?
J'ai remarqué que la bonne façon est-ce (qui, par la voie semble être incompatible avec les autres constructeurs, parens parfois parfois pas parens):
string strA;
ps: question en gras, d'habitude hors de propos les réponses seront downvoted.
Et c'est une des raisons pour lesquelles j'ai arrêté d'utiliser C++. –
@Dietrich Epp: Cela m'a dérangé aussi. Je suppose que c'est le prix payé pour garder la compatibilité C. L'alternative étant d'utiliser C, qui a sa tonne de problèmes, je pense qu'il vaut mieux garder C++ et éviter ce piège. – paercebal
que diriez-vous de 'std :: string strA (" ");' – CaptainDaVinci