如何将参数传递给此参数?

时间:2015-09-18 04:00:41

标签: c++

我在这里定义了一个函数

Request URL:http://ncrjobs.in/jobs-details.php/id/10898/job_company_name/LPIT%20Software%20Solutions%20Pvt%20Ltd%20OPC
Request Method:GET
Status Code:404 Not Found

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

void PalindromeFinder::truncateToLargestPalindrome(string& inputString)

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

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

2 个答案:

答案 0 :(得分:1)

如果要将函数的结果传递给<<运算符,则函数必须实际返回一些内容。在您当前的实现中,它不返回任何内容(void),因此您的代码显然不正确。

要使其有效,您必须:

  1. 从您的函数返回std::string

    string PalindromeFinder::truncateToLargestPalindrome(const string& inputString)
    

    cout << truncateToLargestPalindrome("djfklsevesdfjkf") << endl;
    
  2. 首先调用函数修改局部变量,然后将该变量传递给cout

    std::string str = "djfklsevesdfjkf";
    truncateToLargestPalindrome(str);
    cout << str << endl;
    

答案 1 :(得分:1)

您不能将字符串文字传递给非常量string&参数。编译器需要创建一个临时string对象,但临时不能绑定到非const左值引用,只能绑定到 const lvalue reference 或者右值参考。因此编译错误。

您需要将参数更改为const引用,以便临时string可以绑定它。然后你可以将字符串文字传递给它。

此外,您的函数未返回任何内容,因此您无法将其传递给流式<<运算符(或任何其他运算符)。

请改为尝试:

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

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