Перегрузка операций

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

Для перегрузки операций существует специальное ключевое слово оператор. Рассмотрим конкретный пример

В данном примере мы перегружаем оператор +, заставляя его складывать 2 переменных класса MyClass заданным нами образом. В итоге, если в классе встретится конструкция a+b, где a и b – экземпляры MyClass, то операция будет совершаться, как показано выше в примере. Во всех остальных случаях оператор + будет выполняться обычным образом.

На такую перегрузку действует ряд ограничений :

  1. Перегружать можно только уже используемые операторы. Нельзя ввести новые.
  2. Нельзя перегрузить операторы для уже существующих типов данных, так, например, нельзя перегрузить сложение целых чисел.
  3. Нельзя изменять синтаксис операций – из унарной делать бинарную, менять место оператора в выражении.
  4. Ряд символов перегрузить нельзя: . , .* , ?: , :: , sizeof и #.

Не нашли ответ? Не беда, спросите в комментариях.

Ваш e-mail не будет опубликован. Обязательные поля помечены *