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

class arrays {
	int size;
	int *p;
public:
	arrays(int sz){
		p = new int[sz];
		if(!p) exit(1);
		size = sz;
		cout << "通常のコンストラクタを使う。\n";
	}
	~arrays(){delete [] p;}
	arrays(const arrays &a);
	void put(int i,int j){
		if (i >=0 && i < size) p[i] = j;
	}
	int get(int i){
		return p[i];
	}
};

arrays::arrays(const arrays &a)
{
	size = a.size;
	p = new int[a.size];
	if(!p)exit(1);
	for(int i = 0;i < a.size; i++){
		p[i]  = a.p[i];
	}
	cout << "コピーコンストラクタを使う。\n";
}

int main()
{
	arrays num(10);
	for(int i = 0; i < 10; i++){
		num.put(i, i);
	}
	for(int i = 0; i < 10; i++){
		cout << num.get(i) << ' ';
	}
	cout << "\n";
	arrays x = num;
	for(int i = 0; i < 10; i++){
		cout << x.get(i) << ' ';
	}
	cout << "\n";
	
	return 0;
}