я новичок в С++ и не понимаю, почему этот код работает хорошо:
string GetString(string promt)
{
cout << promt << ": ";
string temp;
getline(cin, temp);
return temp;
}
int main()
{
string firstName = GetString("Enter your first name");
string lastName = GetString("Enter your last name");
cout<< "Your Name is: " << firstName << " " << lastName;
cin.ignore();
cin.get();
return 0;
}
Строковые литералы типа "bla" имеют тип const char*. По крайней мере, auto i = "bla"; указывает, что i имеет тип "const char*". Почему его можно передать в GetString-Function, ведь функция ожидает строку, а не const char*?
const char(&)[N]
, но поскольку C не может скопировать массив в локальную переменную,auto
все равно делает локальную переменнуюconst char*
. - person Mooing Duck   schedule 30.08.2012