输出的为啥不是3

输出的为什么不是3?class A{public:int iA(const int &k){i kA()}A(){i 3}}int main(){A a(1)co

输出的为什么不是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