类型转换函数的参数

Coldmund

如果代码如下所示,

void func(std::string str)
{
    ...
}

void main()
{
    std::string p1 = "abcd";
    char p2[SOME_LENGTH] = "abcd";

    func(p1); // (1)
    func(p2); // (2)
}

(1)和(2)之间哪种方法有效?

Danke Xie

它们同样有效/无效。两者都涉及复制字符串并将副本用作参数“ str”的值。更好的方法是将func声明为

void func(const std::string &str) {
}

这样可以避免复制字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章