assigning to rvalue: why does this compile?
问题 In the following example: class A { private: double content; public: A():content(0) {} A operator+(const A& other) { content += other.content; return *this; } void operator=(const A& other) { content = other.content; } }; A is a simple wrapper for a double for which the + and = operators have been overloaded. In the following use: int main(int argc, char *argv[]) { A a, b, c; (a+b) = c ; // Why is this operation legal? } Why does (a+b) = c compile? I would like to know why this statement is