关于左右值的疑问? 财富值10

2017-01-21 17:39发布

考虑如下代码

class Foo { public:     int x, y; }; Foo operator*(const Foo &lhs, const Foo &rhs) {     Foo ret;     return ret; }  int main() {     Foo a, b, c;     (a * b) = c;     return 0; } 

operator*(a, b)返回的应该是一个右值,为什么可以被赋值呢??编译器没有提示错误。

7条回答

我记得右值也可以是被赋值的.如果函数返回的右值是一个引用呢?

一周热门 更多>