#include using namespace std; //////////////////////////////////////////////// class Array { private: public: int size; int *data; ////////////////////// Array(int s) : size(s) // Конструктор { data = new int[size]; for(int i = 0; i < size; i++) { data[i] = 0; } } //////////////////////////////////////////// Array(const Array& other) : size(other.size) // Конструктор глубокого копирования { cout << "Глубокое копирование!" << endl; data = new int[size]; for (int i = 0; i < size; i++) { data[i] = other.data[i]; // копируем значения, а не указатели } } /////// ~Array() // Деструктор { delete[] data; } //////////////////////////////////// Array& operator = (const Array& other) // Оператор присваивания (для полноты) { if(this != &other) { delete[] data; size = other.size; data = new int[size]; for(int i = 0; i < size; i++) { data[i] = other.data[i]; } } return *this; } }; void monitor(Array a); ///////////////////////////////////////////////////////////////// int main() { setlocale(LC_ALL, "rus"); Array a1(12), a2(7), a3(10); a2 = a1; monitor(a2); return 0; } ////////////////////////////////////////////////////////////////// void monitor(Array a) { for(int i = 0; i < a.size; i ++) { cout << a.data[i] << ", "; } cout << endl; }