#include <iostream>
class A
{
public:
A(){}
A(const A& a)
{
std::cout << "copy ctor\n";
}
void operator=(const A& a)
{
std::cout << "assign ctor\n";
}
};
int main()
{
A a1;
A a2 = a1; // copy
A a3;
a3 = a1; // assign
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQQp7CnB1YmxpYzoKICAgIEEoKXt9CglBKGNvbnN0IEEmIGEpCgl7CgkJc3RkOjpjb3V0IDw8ICJjb3B5IGN0b3JcbiI7Cgl9Cgl2b2lkIG9wZXJhdG9yPShjb25zdCBBJiBhKQoJewoJCXN0ZDo6Y291dCA8PCAiYXNzaWduIGN0b3JcbiI7Cgl9Cn07CgppbnQgbWFpbigpCnsKCUEgYTE7CglBIGEyID0gYTE7CS8vIGNvcHkKCUEgYTM7CglhMyA9IGExOwkvLyBhc3NpZ24KICAgIHJldHVybiAwOwp9