通过引用从返回值传递给出一个错误,如果没有给同一个值赋值给变量

时间:2016-03-17 10:27:48

标签: c++ gcc

我有那两段代码,它们似乎与我相同,但是一个给了我一个编译错误而另一个没有。

我从一个函数返回QString并通过引用传递给另一个函数:

void takesAQString(QString& s){}
QString returnsAQString(){QString s = "Hello"; return s;}

QString s = returnsAQString();
QString ss = "Hello";
takesAQString(s); //this compiles without error
takesAQString(ss); //this too
takesAQString(returnsAQString()); //this gives me an error

这为我提供了error: no matching function to call '...takesAQString(QString)'note: candidates are: ... takesAQString(QString&)

错误本身很清楚,但对我而言,上述3种传递方式QString似乎与我100%相同。我错过了什么?

0 个答案:

没有答案