Я начинаю С++, поэтому извините, если вопрос слишком прост.
Я попытался собрать строковые константы и попробовать все их (запомнить их).
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;
Все они работают, за исключением strA. Он печатает "1". Почему? Какой тип strA в этом случае? Как я могу проверить тип материала, когда я не уверен?
Я заметил, что это правильный способ (который, по-видимому, несовместим с другими конструкторами, иногда parens иногда нет parens):
string strA;
ps: вопрос выделен жирным шрифтом, обычные нерелевантные ответы будут опущены.