Sono nuovo di C++ ed avere una mancanza di capire perché questo codice funziona bene:C++: passando una stringa letterale di tipo const char * in una stringa di parametri
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-letterali come " bla "sono di tipo const char *. Almeno auto i = "bla"; indica che I è di tipo "const char *". Perché è possibile passarlo alla funzione GetString, perché la funzione si aspetta una stringa e non un const char *?
I valori letterali delle stringhe sono di tipo 'const char (&) [N]', ma poiché C non può copiare un array nella variabile locale, 'auto' rende il' const const char * locale comunque. –