gpt4 book ai didi

c++ - 为什么在函数参数中将字符串作为常量字符串传递

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:13 25 4
gpt4 key购买 nike

我对教科书中的一个例子有点困惑。创建字符串时,它被创建为 string 类型。但是,当将相同的字符串传递给函数时,函数参数是 const string 而不是 string

部分代码如下:

int main()
{
string str;
cout << "blah blah..";
getline(cin, str);
if (is_pal(str))
//...
}

bool is_pal(const string& s)
{
//...
}

为什么函数参数是const string& s而不是string& s?我通读了我的教科书,但似乎找不到任何解释。

最佳答案

复制成本可能很高的对象,例如 std::string,在 C++ 中通常由 const 左值引用传递。这是一个很常见的成语;你会到处看到它。 const 左值引用可以绑定(bind)到左值和右值而不进行任何复制,因此这是一种将字符串传递给不会修改它们的函数的有效方法。

关于c++ - 为什么在函数参数中将字符串作为常量字符串传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29907011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com