我遇到了行为上的改变(至少我的理解) 我在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()的返回值是否为右值? 谢谢!