输出的为什么不是3?
class A
{
public:
int i;
A(const int &k)
{
i = k;
A();
}
A()
{
i = 3;
}
};
int main()
{A a(1);
cout << a.i << endl;
return 1;
}
[解决办法]
调用A()操作的对象不是当前对象a, 而是一个临时对象,因此对i=3不会影响到当前对象
http://hi.baidu.com/wenjiejia/blog/item/f37e0a08e6a885d062d98600.html