C++ Программирование в среде С++ Builder 5

   купить ламинат spc alpinext | химическое металлизирование изделий, mail. | строительство деревянных и бань из бревна и бруса. |       

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


+ * / % /\

& | ! =
< >

+= -= *= /= %= ^=   &= |= <<
>> >>= <<= = = ! = <= >= &&  || ++
' ->* -> () [] new delete new[] delete [ ]

Язык C++ позволяет переопределять для классов существующие обозначения операций. Это называется перегрузкой операций. Благодаря ей класс можно сделать таким, что он будет вести себя подобно встроенному типу. В классе можно перегрузить любые из следующих операций:

Нельзя перегружать операции:

. .* :: ?:

Функции-операции, реализующие перегрузку операций, имеют вид

operator операция ([операнды]) ;

Если функция является элементом класса, то первый операнд соответствующей операции будет самим объектом, для которого вызвана функция-операция. В случае одноместной операции список параметров будет пуст. Для двухместных операций функция будет иметь один параметр, соответствующий второму операнду. Если функция-операция не является элементом класса, она будет иметь один параметр в случае одноместной операции и два — в случае двухместной.

Для перегрузки операций существуют такие правила:

  • Приоритет и правила ассоциации для перегруженных операций остаются теми же самыми, что и для операций над встроенными типами.
  • Нельзя изменить поведение операции по отношению к встроенному типу.
  • Функция-операция должна быть либо элементом класса, либо иметь один или несколько параметров типа класса.
  • Функция-операция не может иметь аргументов по умолчанию.
  • Функции-операции, кроме operator=(), наследуются.


  • Содержание раздела