什么时候复制构造函数被调用

tez*_*tez 2 c++

例如,我在对象初始化期间研究过

string s = "Hello world";
Run Code Online (Sandbox Code Playgroud)

如果RHS可隐式转换为LHS类型对象,则将调用Copy Constructor.但我有一个朋友非常肯定char会将指针作为参数的构造函数char被调用.但我告诉他只有在下面的情况下才会调用带指针的构造函数

string s("Hello world");
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

K-b*_*llo 7

string s = "Hello world";
Run Code Online (Sandbox Code Playgroud)

相当于

string s( string( "Hello world" ) );
Run Code Online (Sandbox Code Playgroud)

因此调用构造函数char const*复制构造函数.但是,该标准允许复制构造函数调用被省略复制省略(未完成).