#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;
}