c++ - `invalid initialization of non-const referen

编译此代码时,我得到以下 error :

In function 'int main()': Line 11: error: invalid initialization of non-const reference of type 'Main&' from a temporary of type 'Main'



这是我的代码:
template <class T>
struct Main
{
    static Main tempFunction(){
       return Main();
    }
};

int main()
{
   Main<int> &mainReference = Main<int>::tempFunction(); // <- line 11
}

我不明白为什么?谁能解释一下?

最佳答案

在 C++ 中,临时对象不能绑定(bind)到非常量引用。
Main<int> &mainReference = Main<int>::tempFunction();
在这里,您尝试将右值表达式的结果分配给非常量引用 mainReference这是无效的。

尝试制作 const

关于c++ - `invalid initialization of non-const reference` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9077778/

相关文章:

triggers - 触发编译错误(插入)

c++ - 算法::binary_search call中的预期主要表达式

compiler-errors - Play Framework [2.0]-更改模型破坏了我的见解

java - Eclipse 拒绝我的公共(public) void init 方法

c# - 如何在ce中创建空数据库并用datagridview显示

ios - 导出版本时也出错,找不到iOS arm-apple-darwin9-as.exe

java - 保存一个整数onClick,以便以后可以在android应用中调用它

java - Apache Wink请求处理程序

java - 错误包org.python.util不存在,使用ant进行编译

flash - Flash编译器不允许覆盖