#include <iostream>
class A
{
int n;
public:
A(int& val) : n(val) { std::cout << "A(int&)\n"; }
A(const int& val=0) : n(val) { std::cout << "A(const int&)\n"; }
A(const A& val) : n(val.n) { std::cout << "A(const A&)\n"; }
};
int main()
{
A a = 3;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQQp7CglpbnQgbjsKCQpwdWJsaWM6CglBKGludCYgdmFsKSA6IG4odmFsKSB7IHN0ZDo6Y291dCA8PCAiQShpbnQmKVxuIjsgfQoJQShjb25zdCBpbnQmIHZhbD0wKSA6IG4odmFsKSB7IHN0ZDo6Y291dCA8PCAiQShjb25zdCBpbnQmKVxuIjsgfQoJQShjb25zdCBBJiB2YWwpIDogbih2YWwubikgeyBzdGQ6OmNvdXQgPDwgIkEoY29uc3QgQSYpXG4iOyB9Cn07CgppbnQgbWFpbigpCnsKCUEgYSA9IDM7CglyZXR1cm4gMDsKfQ==