C++;:将const char*类型的字符串文本传递给字符串参数 我是C++新手,对代码为什么很好理解不够: 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-GetString(string-promt) { cout

C++;:将const char*类型的字符串文本传递给字符串参数 我是C++新手,对代码为什么很好理解不够: 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-GetString(string-promt) { cout,c++,string,const-char,C++,String,Const Char,std::string有一个字符串,它接受一个char const*,并用指针指向的以null结尾的字符串初始化字符串。此构造函数不是显式的,因此可以在隐式转换中使用。查看std::string构造函数。 发生的情况是,编译器找到了一个接受const char*的构造函数,并使用它自动将const char*转换为std::string。 顺便说一句,我建议改为使用const std::string&prompt。字符串文字的类型为const char(&)[N],但由于C无法将数组复制到局部变

std::string
有一个字符串,它接受一个
char const*
,并用指针指向的以null结尾的字符串初始化字符串。此构造函数不是显式的,因此可以在隐式转换中使用。

查看std::string构造函数。 发生的情况是,编译器找到了一个接受const char*的构造函数,并使用它自动将const char*转换为std::string。
顺便说一句,我建议改为使用
const std::string&prompt

字符串文字的类型为
const char(&)[N]
,但由于C无法将数组复制到局部变量,
auto
仍会生成局部
const char*