class SafeArray
{
public:
	SafeArray(int s);
	SafeArray(const int v[], int s);
	int& operator[](int i);
	int operator[](int i) const;
	private:
	int size;
	int* values;
};

SafeArray::SafeArray(int s) : size(s), values(new int[size]) {}

SafeArray::SafeArray(const int v[], int s) : size(s)
{
	values = new int[size];
	for (int i = 0; i < size; i++)
	values[i] = v[i];
}

int& SafeArray::operator[](int index)
{
	assert((index >= 0) && (index < size));
	return values[i];
}

int SafeArray::operator[](int index) const;
{
	assert((index >= 0) && (index < size));
	return values[i];
}