通过""
传递字符串相当于通过在C ++中调用std::str("")
来传递字符串吗?
e.g。给定一个接受std::str
作为参数的函数:
void funcA(std::string arg) {
arg = "abc";
}
我应该funcA(std::string("abc"));
还是funcA("abc");
来拨打电话?即第二个版本是来自char数组的类型转换吗?
答案 0 :(得分:4)
它们是等价的。由于构造函数std::string::string( char const * )
未声明为explicit
,因此将其隐式地称为 ,以提供从char *
到string
的转换。隐式调用与显式调用(写为std::string("abc")
)完全相同。