#include <iostream>
using namespace std;
class Car {
public :
Car(): carnum(0) {
cout << "default constructor " << carnum << endl;
}
Car (int n) : carnum (n) {
cout << "Argument constructor " << carnum << endl;
}
Car& operator = (const Car& car) {
carnum = car.carnum;
cout << "Equal operator " << carnum << endl;
return *this;
}
Car (const Car& car) {
carnum = car.carnum;
cout << "Copy constructor " << carnum << endl;
}
Car buyCar() {
return *this;
}
int carnum;
};
int main() {
// your code goes here
Car aCar, theCar(2);
cout << endl;
aCar = theCar.buyCar();
cout << endl;
Car bCar(aCar.buyCar());
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBDYXIgewpwdWJsaWMgOgoJQ2FyKCk6IGNhcm51bSgwKSB7CgkJY291dCA8PCAiZGVmYXVsdCBjb25zdHJ1Y3RvciAiIDw8IGNhcm51bSA8PCBlbmRsOwoJfQoJCglDYXIgKGludCBuKSA6IGNhcm51bSAobikgewoJCWNvdXQgPDwgIkFyZ3VtZW50IGNvbnN0cnVjdG9yICIgPDwgY2FybnVtIDw8IGVuZGw7IAoJfQoJCglDYXImIG9wZXJhdG9yID0gKGNvbnN0IENhciYgY2FyKSB7CgkJCgkJY2FybnVtID0gY2FyLmNhcm51bTsKCQljb3V0IDw8ICJFcXVhbCBvcGVyYXRvciAiIDw8IGNhcm51bSA8PCBlbmRsOwoJCXJldHVybiAqdGhpczsKCX0KCQoJQ2FyIChjb25zdCBDYXImIGNhcikgewoJIAljYXJudW0gPSBjYXIuY2FybnVtOwoJCWNvdXQgPDwgIkNvcHkgY29uc3RydWN0b3IgIiA8PCBjYXJudW0gPDwgZW5kbDsKCX0KCQoJQ2FyIGJ1eUNhcigpIHsKCQlyZXR1cm4gKnRoaXM7Cgl9CgkKCWludCBjYXJudW07Cn07CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJQ2FyIGFDYXIsIHRoZUNhcigyKTsKCWNvdXQgPDwgZW5kbDsKCWFDYXIgPSB0aGVDYXIuYnV5Q2FyKCk7Cgljb3V0IDw8IGVuZGw7CglDYXIgYkNhcihhQ2FyLmJ1eUNhcigpKTsKCXJldHVybiAwOwp9