首页 文章

“非const引用的无效初始化”是什么意思?

提问于
浏览
9

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

在函数'int main()'中:第11行:错误:从'Main'类型的临时类型初始化'Main&'类型的非const引用

这是我的代码:

template <class T>
struct Main
{
    static Main tempFunction(){
       return Main();
    }
};

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

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

1 回答

  • 9

    在C temporaries中不能绑定非常量引用 .

    Main<int> &mainReference = Main<int>::tempFunction();

    在这里,您尝试将rvalue表达式的结果分配给非常量引用 mainReference ,该引用无效 .

    试试吧 const

相关问题