Soy nuevo en C++ y tienen una falta de comprensión de por qué este código funciona bien:C++: pasar una cadena literal de Tipo const char * a una cadena de parámetro
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;
}
String-literales como " bla "son de tipo const char *. Al menos auto i = "bla"; indica que soy del tipo "const char *". ¿Por qué es posible pasarlo a la GetString-Function, porque la función espera una cadena y no un const char *?
Los literales de cadena son del tipo 'const char (&) [N]', pero como C no puede copiar una matriz a la variable local, 'auto' hace que el local' const char * 'de todos modos. –