Rvalue赋值 - 原始vs Class对象

时间:2016-09-27 15:16:35

标签: c++ c++11 rvalue

我遇到了行为上的改变(至少我的理解) 我在c ++中创建的基元和类之间的关系。 说,以下:

int foo()
{
    int a = 4;
    return a;
}

int main() 
{

    foo() = 2;
}

当然会导致编译错误,因为我试图分配 什么东西变成了右边。 但是,如果我要创建自己的类,请说复杂,以下内容:

Complex foo()
{
    Complex a = Complex(2,4);
    return a;
}

int main() 
{

    foo() = Complex(1,2);
}

实际上会有效。我认为编译的唯一方法是if foo() 返回了一个参考。 我错过了什么?我假设原语和原语之间存在差异 类 - 复合foo()的返回值是否为右值? 谢谢!

0 个答案:

没有答案