谁能帮我看一下,例子程序的一行语句没看明白!
是MAIN中的第一行语句.f5() = X(1);
f5()是定义的一个函数,怎么能够把一个对象赋给一个函数呢?
谢谢. 下面附上这一小段程序.
--------------------------------
class X {
int i;
public:
X(int I = 0) : i(I) {}
void modify() { i++; }
};
X f5() {
return X();
}
const X f6() {
return X();
}
void f7(X& x) { // Pass by non-const reference
x.modify();
}
main() {
f5() = X(1); // OK -- non-const return value
f5().modify(); // OK
f7(f5()); // OK
// Causes compile-time errors:
//! f6() = X(1);
//! f6().modify();
//! f7(f6());
}