Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab / Определения функций-элементов класса Array 2

.doc
Скачиваний:
3
Добавлен:
16.02.2016
Размер:
36.35 Кб
Скачать

// Инициализация статического элемента данных с областью

// действия файл

int Array::arrayCount =0; // пока нет никаких объектов

// Конструктор с умолчанием класса Array

Array::Array(int arraySize)

{

++arrayCount; //прибавление одного объекта

size = arraySize; //по умолчанию размер равен 10

ptr = new int[size]; //выделение пространства для массива

assert(ptr !- 0); //завершение, если память не выделена

for (int i = 0; i < size; i++)

ptr[i] = 0; //задание массиву начальных значений

}

// Конструктор копии класса Array Array::Array(const Array &init)

//прибавление одного объекта //по умолчанию размер равен 10 //выделение памяти для массива

//завершение, если память не выделена

{

++arrayCount;

size = int.size;

ptr = new int[size];

assert(ptr != 0);

for (int i = 0; i < size; i++)

ptr[i] = init.ptr[i]; //копирование init в объект

}

// Деструктор класса Array Array::~Array()

{

--arrayCount; delete [ ] ptr;

//уменьшение на один объект //возвращение области памяти массива

}

// Получение размера массива

int Array::getSize() const { return size; }

// Перегруженная операция присваивания

const Array &Array::operator=(const Array &right)

{

// проверка самоприсваивания

// возвращение области памяти

// изменение размера объекта

// выделение памяти для копии массива

// завершение, если память не выделена

if (&right != this) {

delete [ ] ptr;

size = right.size;

ptr = new int[size];

assert(ptr != 0);

for (int i = 0; i < size; i++) ptr[i] = right.ptr[i];

// массив копии в объект

}

return *this;

// позволяет = у = z;

}