将std :: string作为函数参数传递时的C ++类型转换

时间:2013-04-13 04:58:07

标签: c++

通过""传递字符串相当于通过在C ++中调用std::str("")来传递字符串吗?

e.g。给定一个接受std::str作为参数的函数:

void funcA(std::string arg) {
    arg = "abc";
}

我应该funcA(std::string("abc"));还是funcA("abc");来拨打电话?即第二个版本是来自char数组的类型转换吗?

1 个答案:

答案 0 :(得分:4)

它们是等价的。由于构造函数std::string::string( char const * )未声明为explicit,因此将其隐式地称为 ,以提供从char *string的转换。隐式调用与显式调用(写为std::string("abc"))完全相同。