我有那两段代码,它们似乎与我相同,但是一个给了我一个编译错误而另一个没有。
我从一个函数返回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%相同。我错过了什么?