Жестокая(мясистая) перегрузка операторов




ПЕРЕГРУЗКА УНАРНЫХ ОПЕРАТОРОВ

Задание №1(3)

Создать класс целых чисел. Определить оператор ++, как функцию-член и -- как дружественную функцию.

Задание №2(3)

Создать класс целых чисел. Определить оператор --, как функцию-член и ++ как дружественную функцию.

Задание №3(3)

Создать класс вещественных(float) чисел. Определить оператор ++, как функцию-член и -- как дружественную функцию.

Задание №4(3)

Создать класс вещественных(float) чисел. Определить оператор --, как функцию-член и ++ как дружественную функцию.

Задание №5(3)

Создать класс вещественных(double) чисел. Определить оператор ++, как функцию-член и -- как дружественную функцию.

Задание №6(3)

Создать класс вещественных(double) чисел. Определить оператор --, как функцию-член и ++ как дружественную функцию.

 

Задание №7(3)

Создать класс целых чисел (long). Определить оператор ++, как функцию-член и -- как дружественную функцию.

Задание №8(3)

Создать класс целых чисел (long). Определить оператор --, как функцию-член и ++ как дружественную функцию.

Задание №9(3)

Создать класс символов (char). Определить оператор ++, как функцию-член и -- как дружественную функцию.

Задание №10(3)

Создать класс символов (char). Определить оператор --, как функцию-член и ++ как дружественную функцию.

Задание №11(5)

Создать объект типа очередь. Перегрузить оператор ++ как функцию член и -- как дружественную функцию. (Как постфиксными так префиксными). ++ добавляет элемент в очередь (пустой элемент, например int i=0), -- вытаскивает элемент из очереди. Оператор! проверяет очередь на пустоту.

Задание №12(5)

Создать объект типа стек. Перегрузить оператор ++ как функцию член и -- как дружественную функцию. (Как постфиксными так префиксными). ++ добавляет элемент новый в стек, -- удаляет верхушку стека. Оператор! проверяет стек на пустоту.

Задание №13(5)

Создать объект - связный двунаправленный список, с перегруженными унарными операциями ++, --, как движение по списку. (Как постфиксными так префиксными).

Задание №14(5)

Создать объект – двунаправленное кольцо, с перегруженными унарными операциями ++, --, как движение по списку. (Как постфиксными так префиксными).

Задание №15(5)

Создать объект - однонаправленный список, в котором определены операции, ++ - добавляет в конец списка, -- удаляет элемент из списка. (Как постфиксными так префиксными). Оператор! проверяет стек на пустоту.

Задание №16(4)

Создать объект стек, перегрузив ++ и --. (Как постфиксными так и префиксными). ++ Добавляет элемент в стек. -- извлекает элемент из стека.

Задание №17(4)

Создать класс - координаты с унарным ++ и --, -. ++ и -- постфиксная и префиксная. - меняет знак у обеих координат. ++ как функция-член, -- как дружественная функция.

Задание №18(4)

Создать объект - очередь с перегруженными операциями ++ как функциями-членами, -- как дружественными функциями. (Как постфиксными так префиксными).

Задание №19(4)

Создать объект - однонаправленный список, в котором определены операции, ++ - добавляет в конец списка, -- удаляет элемент из списка. (Как постфиксными так префиксными).

ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ

Задание №1(3)

Создать класс целых чисел. Определить оператор +, как функцию-член и - как дружественную функцию.

Задание №2(3)

Создать класс целых чисел. Определить оператор -, как функцию-член и + как дружественную функцию.

Задание №3(3)

Создать класс целых чисел (long). Определить оператор -, как функцию-член и + как дружественную функцию. Оператор присвоения, и сравнений.

Задание №4(3)

Создать класс целых чисел (long). Определить оператор +, как функцию-член и - как дружественную функцию.

Задание №5(3)

Создать класс вещественных чисел (double). Определить оператор -, как функцию-член и + как дружественную функцию.

Задание №6(3)

Создать класс вещественных чисел (double). Определить оператор +, как функцию-член и - как дружественную функцию.

Задание №7(3)

Создать класс вещественных чисел.(float) Определить оператор -, как функцию-член и + как дружественную функцию.

Задание №8(4)

Создать класс координат. Определить оператор +, как функцию-член и - как дружественную функцию. Сложить и вычесть координаты с друг другом и с числом. Присвоить координаты, сравнить координаты (==,!=).

Задание №9(4)

Создать объект динамический стек. Перегрузить операции +, +=, -= (с извлечением элемента).

Задание №10(4)

Создать объект очередь с перегруженными +, +=, добавление элемента в очередь и сложение очередей, -- для извлечения из очереди, - для вычитания очередей.

Задание №11(4)

Создать объект стек, с перегруженными операциями +, *, =, +=, и для выталкивания из стека --. () - выдает под-стек.

Задание №12(4)

Создать объект очередь, с перегруженными операциями +, *, =, +=, и для выталкивания из стека --. () - выдает под-очередь.

 

Задание №13(5)

Создать объект типа стек. Перегрузить оператор + как функцию член и * как дружественную функцию. + складывает элемент в новый стек, * умножает верхушку стека на параметр. Стеки можно присваивать, проверять на равенство == или!=, вводить и выводить в поток, добавлять += элемент в стек.

Задание №14(5)

Создать объект типа очередь. Перегрузить оператор + как функцию член и * как дружественную функцию. + добавляет элемент в очередь, * умножает элемент в очереди. Вытаскивает элемент из очереди --. Очереди можно присваивать, проверять на равенство == или!=, вводить и выводить в поток, добавлять += элемент в очередь.

Задание №15(5)

Создать объект - однонаправленный список, в котором определены операции, + - добавляет в конец списка, += добавляет в этот же список в конец списка. - удаляет указанный элемент из списка (номер элемента через параметр), = - присвоение списков, сравнение списков ==,!=, >, <, >=, <=, [] получение элемента списка, ++ - устанавливает указатель на следующий элемент. () выдать подсписок от первого до второго элемента.

Задание №16(5)

Создать объект - однонаправленное кольцо, в котором определены операции, + - добавляет в конец списка, += добавляет в этот же список в конец списка. - удаляет указанный элемент из списка (номер элемента через параметр), = - присвоение списков, сравнение списков ==,!=, >, <, >=, <=, [] получение элемента списка, ++ - устанавливает указатель на следующий элемент. () выдать подсписок от первого до второго элемента.

Задание №17(5)

Создать объект - двунаправленный список, в котором определены операции, + - добавляет в конец списка, += добавляет в этот же список в конец списка. - удаляет указанный элемент из списка (номер элемента через параметр), = - присвоение списков, сравнение списков ==,!=, >, <, >=, <=, [] получение элемента списка, ++ - устанавливает указатель на следующий элемент. () выдать подсписок от первого до второго элемента.

 

ЖЕСТОКАЯ(МЯСИСТАЯ) ПЕРЕГРУЗКА ОПЕРАТОРОВ

 

Задание №1(4)

Создать класс вектор, содержащий ссылку на int, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить операторы =, +, -, *, +=, -=, *= с целым числом операторы ++ и --. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа int. Перегрузить операторы вывода и ввода в поток.

Задание №2(4)

Создать класс вектор, содержащий ссылку на long, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить операторы =, +, -, *, +=, -=, *= с числом типа long, операторы ++ и --. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа long. Перегрузить операторы вывода и ввода в поток.

Задание №3(4)

Создать класс вектор, содержащий ссылку на float, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить операторы =, +, -, *, +=, -=, *= с целым числом операторы ++ и --. Определить операторы =, +, -, *, +=, -=, *= с вещественным числом, операторы ++ и --. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа float. Перегрузить операторы вывода и ввода в поток.

Задание №4(4)

Создать объект - двунаправленный список, в котором определены операции, + - добавляет в конец списка, += добавляет в этот же список в конец списка. - удаляет указанный элемент из списка (номер элемента через параметр), = - присвоение списков, сравнение списков ==,!=, >, <, >=, <=, [] получение элемента списка, ++ - устанавливает указатель на следующий элемент, -- устанавливает указатель на предыдущий элемент. () выдать подсписок от первого до второго элемента.

Задание №5(4)

Создать объект - однонаправленный список, в котором определены операции, + - добавляет в конец списка, += добавляет в этот же список в конец списка. - удаляет указанный элемент из списка (номер элемента через параметр), = - присвоение списков, сравнение списков ==,!=, >, <, >=, <=, [] получение элемента списка, ++ - устанавливает указатель на следующий элемент. () выдать подсписок от первого до второго элемента.

Задание №6(4)

Создать объект динамическая очередь. Перегрузив операции +, --, +=, -=, =,!=, ==, >=, <=, >, <, ввода, вывода в поток, получить под-очередь ().

Задание №7(4)

Определить класс список однонаправленный с перегруженными операциями ++ вперед по списку, -- удалить элемент, на котором стоит указатель, += с другим списком и с новым элементом, - унарный удаляет с конца списка, =, ==,!=, >, <, <=, >=. Ввод, вывод в поток. () - выдает подсписок.

Задание №8(4)

Создать класс вектор, содержащий ссылку на double, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа double. Перегрузить операторы вывода и ввода в поток.

Задание №9(4)

Создать класс вектор, содержащий ссылку на unsigned, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить операторы =, +, -, *, +=, -=, *= с целым без знаковым числом, операторы ++ и --. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа unsigned. Перегрузить операторы вывода и ввода в поток.

Задание №10(4)

Создать класс вектор, содержащий ссылку на unsigned long, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить операторы =, +, -, *, +=, -=, *= с типа unsigned long, операторы ++ и --. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа unsigned long. Перегрузить операторы вывода и ввода в поток.

Задание №11(4)

Создать класс вектор, содержащий ссылку на unsigned char, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить операторы =, +, -, *, +=, -=, *= с числом типа unsigned char, операторы ++ и --. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа unsigned char. Перегрузить операторы вывода и ввода в поток.

Задание №12(4)

Создать класс вектор, содержащий ссылку на long double, размерность вектора и переменную ошибки. Класс имеет конструкторы по умолчанию, конструктор с одним и двумя параметрами, конструктор копирования и деструктор. Определить оператор +, -, *, - как дружественные функции, =, +=, -=, *=,[] - как функции-члены. Определить операторы =, +, -, *, +=, -=, *= с целым числом операторы ++ и --. Определить операторы =, +, -, *, +=, -=, *= с числом типа long double, операторы ++ и --. Определить функцию печати. Сравнить время работы созданного класса и встроенного массива типа long double. Перегрузить операторы вывода и ввода в поток.

Задание №13(4)

Создать объект типа стек. Перегрузить оператор ++, --,!,!=, ==, >, <, >=, <=, +,. Ввод, вывод в поток.

Задание №14(4)

Определить класс - комплексные числа, перегрузив различные операторы, +, -, ++, --, +=, -=, *,./, *=, /=,!,!=, ==, >,<, >=, <=. Ввода, вывода в поток. Сложение и вычитание должно производиться как с элементами данного класса так и со встроенными float.

Задание №15(5)

Создать класс матриц, содержащий ссылку на int, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с целым и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №16(5)

Создать класс матриц, содержащий ссылку на long, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с long и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №17(5)

Создать класс матриц, содержащий ссылку на float, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №18(5)

Создать класс матриц и вектор, содержащие ссылку на float, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.

Задание №19(5)

Создать класс матриц и вектор, содержащие ссылку на double, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.

Задание №20(5)

Создать класс матриц и вектор, содержащие ссылку на long, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.

Задание №21(5)

Создать класс матриц и вектор, содержащие ссылку на int, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.

Задание №22(5)

Создать класс матриц, содержащий ссылку на double, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с double и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №23(5)

Создать класс матриц, содержащий ссылку на unsigned, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с unsigned и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №24(5)

Создать класс матриц, содержащий ссылку на unsigned long, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с unsigned long и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №25(5)

Создать класс матриц, содержащий ссылку на unsigned char, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с unsigned char и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №26(5)

Создать класс матриц, содержащий ссылку на long double, число строк и столбцов и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с long double и с вектором, определенном в задании 10. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток.

Задание №27(5)

Создать класс матриц и вектор, содержащие ссылку на float, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.

Задание №28(5)

Создать класс матриц и вектор, содержащие ссылку на double, число строк и столбцов (для вектора длину) и состояние ошибки. Определить конструкторы по умолчанию, конструктор с одним и с двумя параметрами, конструктор копирования, деструктор. Определить операторы =, +, -, +=, -=, *., *= с объектами этого класс, с float и с вектором. Определить оператор [] так, чтобы обращение [][] к элементам имело смысл, аналогичный встроенному. Перегрузить операторы вывода и ввода в поток. Для вектора должны быть определены кроме перечисленных ++, --, - унарный, [], /=, /. Проверки. Операторы * И *= должны быть определены для умножения вектора и матрицы.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: