string s = "abc";
上述语句将首先调用string ( const char * s )
构造函数,然后根据What are the differences in string initialization in C++?调用复制构造函数。
这是一个问题:C ++如何知道它应该调用string ( const char * s )
来转换文字字符串" abc"到临时字符串对象?
注意: 复制构造函数不会在复制初始化中被调用。
答案 0 :(得分:3)
使用语法
初始化对象string s = "abc";
有几种情况是合法初始化。在所有情况下,RHS必须可转换为string
才能生效。
字符串文字可以转换为string
的一种方法是通过string
的构造函数来获取char const*
。这称为user defined conversion。
答案 1 :(得分:1)