例如,我在对象初始化期间研究过
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)
那是对的吗?
干
string s = "Hello world";
Run Code Online (Sandbox Code Playgroud)
相当于
string s( string( "Hello world" ) );
Run Code Online (Sandbox Code Playgroud)
因此调用构造函数char const*和复制构造函数.但是,该标准允许复制构造函数调用被省略的复制省略(未完成).