编译此代码时,我得到以下error:
在函数'int main()'中: 第11行:错误:“Main&”类型的非const引用的无效初始化来自临时的“主要”
这是我的代码:
template <class T>
struct Main
{
static Main tempFunction(){
return Main();
}
};
int main()
{
Main<int> &mainReference = Main<int>::tempFunction(); // <- line 11
}
我不明白为什么?谁能解释一下?
答案 0 :(得分:9)
在C ++中,临时数不能绑定到非常量引用。
Main<int> &mainReference = Main<int>::tempFunction();
在这里,您尝试将rvalue表达式的结果分配给无效的非常量引用mainReference
。
尝试制作const