2

传递字符串是否""等同于通过调用std::str("")C++ 传递字符串?

例如,给定一个接受std::str作为参数的函数:

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

我应该用funcA(std::string("abc"));or来称呼它funcA("abc");吗?即第二个版本是char数组的类型转换吗?

4

1 回答 1

4

它们是等价的。因为构造函数std::string::string( char const * )未声明为explicit,所以它被隐式调用以提供从char *到的转换string。隐式调用与显式调用执行相同的操作(写为std::string("abc"))。

于 2013-04-13T05:01:21.373 回答