class A {}; int main() { A() = A(); return 0; } 为什么要编译此代码?应该不会在赋值运算符的左侧放置左值吗?是A()左值吗? g++ 4.7版本 最佳答案 对于内置类型,您将是正确的:内置赋值运算符在左侧需要可修改的左值。但是,这不是使用内置运算符,而是使用由类隐式声明的重载。这是一个成员函数,等效于A().operator=(A()); 成员函数可以在右值上调用。