C++:将类型为const char*的字符串文字传递给字符串参数

Gru*_*urs 5 c++ string 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;
}
Run Code Online (Sandbox Code Playgroud)

像"bla"这样的字符串文字是类型const char*.至少auto i ="bla"; 表示我是Type"const char*".为什么可以将它传递给GetString-Function,因为函数需要一个字符串而不是一个const char*?

Man*_*rse 8

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