double arrow

Задание 3. Создать объект типа стек


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

Задание 4

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

Вариант 14. Перегрузка операторов
Задание 1. Унарная операция

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

Задание 2. Бинарная операция

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

Задание 3




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

Задание 4

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

Дружественные функции и перегрузка операций. Преобразование данных.

План

  1. Преобразования, определяемые классом
  2. Перегрузка и выбор функций
  3. Дружественные функции
  4. Перегружаемые операции
  5. Перегрузка унарного оператора
  6. Перегрузка бинарного оператора
  7. Перегрузка оператора присваивания и индексирования
  8. Перегрузка операций new, delete, ->

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



Операторы перегружаются и выбираются на основании алгоритма соответствия сигнатур. Перегрузка операторов придает им новые значения. Например, выражение a+bимеет различные значения, в зависимости от типов переменных a и b.Перегрузка оператор + для типов, определяемых пользователем, позволяет использовать их в дополнительных выражениях в большинстве случаев так же, как и встроенные типы. При определении функции преобразования допустимы также выражения смешанного типа.

Один из принципов ООП состоит в том, что определяемые пользователем типы должны иметь те же привилегии, что и встроенные типы. Типы, встроенные в базовый язык, могут смешиваться в выражениях, поскольку это удобно, но, с другой стороны, при этом обременительно определять последовательность необходимых преобразований.







Сейчас читают про: