Создать класс матриц и вектор, содержащие ссылку на float, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.
Вариант 5. Перегрузка операторов
Задание 1 Унарная операция
Создать объект типа стек. Перегрузить оператор ++ как функцию член и -- как дружественную функцию. (Как постфиксными так префиксными). ++ добавляет элемент новый в стек, -- удаляет верхушку стека. Оператор! проверяет стек на пустоту.
Задание 2. Бинарная операция
Создать объект типа очередь. Перегрузить оператор + как функцию член и * как дружественную функцию. + добавляет элемент в очередь, * умножает элемент в очереди. Вытаскивает элемент из очереди --. Очереди можно присваивать, проверять на равенство == или!=, вводить и выводить в поток, добавлять += элемент в очередь.
|
|
Задание 3
Создать объект - однонаправленный список, в котором определены операции, + - добавляет в конец списка, += добавляет в этот же список в конец списка. - удаляет указанный элемент из списка (номер элемента через параметр), = - присвоение списков, сравнение списков ==,!=, >, <, >=, <=, [] получение элемента списка, ++ - устанавливает указатель на следующий элемент. () выдать подсписок от первого до второго элемента.
Задание 4
Создать класс матриц и вектор, содержащие ссылку на double, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.
Вариант 6. Перегрузка операторов
Задание 1 Унарная операция
Создать объект - связный двунаправленный список, с перегруженными унарными операциями ++, --, как движение по списку. (Как постфиксными так префиксными).