#include <iostream>
#include <vector>
using namespace std;

class A {
public:
	A()	{ cout << "A()" << endl; }
	A(int i) : value(i) { cout << "A(int i)" << endl; }
	A(const A& ra)
	{
		cout << "A(const A)" << endl;
		value = ra.value;
	}
	~A() { cout << "~A()" << endl; }
	
	A& operator=(const A& ra)
	{
		cout << "A operator=" << endl;
		value = ra.value;
		return *this;
	}
	
private:
	int value;
};

int main() {
	// your code goes here
	A a(42);
	vector<A> va;
	va.push_back(a);
	return 0;
}