gpt4 book ai didi

c++ - 如何将参数传递给此参数?

转载 作者:行者123 更新时间:2023-11-30 03:49:17 27 4
gpt4 key购买 nike

我在这里定义了一个函数

void PalindromeFinder::truncateToLargestPalindrome(string& inputString)

当我想测试这个功能时我会使用

cout<<truncateToLargestPalindrome("djfklsevesdfjkf")<<endl;

然后编译器给了我这个错误

PalindromeFinder.cpp:19:36: error: non-const lvalue reference to type 'string'
(aka 'basic_string<char, char_traits<char>, allocator<char> >') cannot
bind to a value of unrelated type 'const char [8]'
cout<<truncateToLargestPalindrome("racecar")<<endl;
^~~~~~~~~
./PalindromeFinder.h:22:45: note: passing argument to parameter here
void truncateToLargestPalindrome(string&);

最佳答案

您不能将字符串文字传递给非常量 string&范围。编译器需要创建一个临时的 string对象,但临时对象不能绑定(bind)到非 const 左值引用,只能绑定(bind)到const 左值引用右值引用。因此编译器错误。

您需要将参数更改为 const引用所以临时string可以绑定(bind)到它。然后您可以将字符串文字传递给它。

此外,您的函数不返回任何内容,因此您无法将其传递给流媒体 <<运营商(或任何其他运营商,就此而言)。

试试这个:

string PalindromeFinder::truncateToLargestPalindrome(const string& inputString)
{
string outputString = inputString;
// modify outputString as needed...
return outputString;
}

cout << truncateToLargestPalindrome("djfklsevesdfjkf") << endl;

关于c++ - 如何将参数传递给此参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643645/

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