void function(QString & str){
/**************
}
调用这个函数,例如
function(QString("123"))
传参一个右值对象,临时对象,则会出现这个问题。
一个临时对象的引用,这怎么想都不合理
从该函数的定义上看,拿到QString之后 ,是可以对原本的QString进行修改的
但对一个临时对象进行修改是无意义的,所以会报错
解决方法是,在前面加一个const,或把引用去掉,函数内部会拷贝一份临时对象并绑定变量名变为左值
void function(const QString & str){
/**************
}