#include <iostream>
class foo {
private:
int a;
public:
foo() : a(0) { std::cout << "Default Ctor" << std::endl; }
foo(int x) : a(x) { std::cout << "Int Ctor" << std::endl; }
foo& operator=(int x) {
std::cout << "Int Assignment Op" << std::endl;
a = x;
return *this;
}
};
int main() {
int b = 5;
foo obj = b + 2;
foo obj2; obj2 = b + 2;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgZm9vIHsKcHJpdmF0ZToKCWludCBhOwpwdWJsaWM6CiAgICBmb28oKSA6IGEoMCkgeyBzdGQ6OmNvdXQgPDwgIkRlZmF1bHQgQ3RvciIgPDwgc3RkOjplbmRsOyB9Cglmb28oaW50IHgpIDogYSh4KSB7IHN0ZDo6Y291dCA8PCAiSW50IEN0b3IiIDw8IHN0ZDo6ZW5kbDsgfQoJZm9vJiBvcGVyYXRvcj0oaW50IHgpIHsKCQlzdGQ6OmNvdXQgPDwgIkludCBBc3NpZ25tZW50IE9wIiA8PCBzdGQ6OmVuZGw7CgkJYSA9IHg7CgkJcmV0dXJuICp0aGlzOwoJfQp9OwoKaW50IG1haW4oKSB7CglpbnQgYiA9IDU7CgkKCWZvbyBvYmogPSBiICsgMjsKCWZvbyBvYmoyOyBvYmoyID0gYiArIDI7CgkKCXJldHVybiAwOwp9