// cl -GX testCtor1.cpp #include #include using namespace std; class ArrayAccessViolation { public: ArrayAccessViolation(int index, int size); void printError(); private: int m_index; int m_size; }; ArrayAccessViolation::ArrayAccessViolation(int index, int size) : m_index(index), m_size(size) { } void ArrayAccessViolation::printError() { cout << "ArrayAccessViolation::" << endl; cout << "Try to access the " << m_index+1 << "-th element of a " << m_size << "-element vector\n"; } class Vector { public: Vector(int size); ~Vector(); int &operator[](int index); void print(); private: int *m_data; int m_size; }; Vector::Vector(int size) : m_size(size), m_data(0) { if (m_size>0) { m_data = new int[m_size]; for (int i=0; i=0)) return m_data[index]; throw ArrayAccessViolation(index, m_size); } void Vector::print() { int i; cout << " ============================\n m_size="; cout << m_size << endl; for (i=0; i