Необходимо разработать абстрактный тип данных (АДТ) согласно варианту.
Вариант 15: АДТ − одномерный массив (вектор) вещественных чисел. Дополнительно перегрузить следующие операции:
+ − сложение векторов (a[i]+b[i] для всех i);
[] − доступ по индексу;
+ − добавить число к вектору (double+vector).
2 Определение класса
Класс – пользовательский тип данных. Объект, созданный на основе класса, имеет состояние и поведение. Состояние определяется с помощью свойств, задающих параметры объекта (цвет, размеры и т.д.). Поведение реализуется через методы, определяющие какие действия можно совершать над объектом.
В данном случае классом является одномерный массив вещественных чисел. Класс содержит следующие поля:
Размер массива – количество элементов в массиве, задается отдельно для каждого объекта.
Буфер для хранения элементов – хранилище, в котором содержатся элементы массива. При создании объекта массива под хранилище выделяется область памяти.
Методы класса:
Конструктор без параметров.
Конструктор с параметрами.
Метод для заполнения массива случайными числами от 0 до 100.
Метод для вывода элементов массива на экран.
Код класса приведен в листинге 1.
Листинг 1 – Код класса
#include
#include
#include
using namespace std;
class Mas {
private:
double *buffer;
int buff_size;
public:
Mas(); // конструктор без параметров
Mas(int); //конструктор с параметром (размер)
~Mas(); //деструктор
void setMas(); //заполнить массив случайными числами
void getMas(); // вывод массива
Mas operator+(Mas&); // перегрузка +
Mas operator+(double); // перегрузка +
double& operator[](int) const; //перегрузка []
Mas& operator=(const Mas&); //перегрузка оператора =
};
3 Обоснование включения в класс нескольких конструкторов, деструктора и операций присваивания, сложения и взятия элемента
Класс Mas содержит конструктор с параметром (размер массива), конструктор без параметров. Конструктор с параметром необходим для создания массива с определенным количеством элементов. Конструктор без параметров используется для создания массива, в котором будет храниться результат сложения массивов или массива и числа.