чтобы при использовании с объектами конкретных классов эти операции выполнялись
специфическим образом, через специально заданные функции.Конкретно, можно перегружать следующие операции языка:
Последние четыре операции означают: индексацию, вызов функции, размещение в динамической памяти и освобождение памяти.
Для дальнейшего изложения, обозначим @ - некоторую перегружаемую операцию языка С++. Пусть x и y – объекты некоторых классов С++.
Перегрузка унарных операций.
@x – унарная операция над объектом x в префиксной форме интерпретируется как вызов функции-члена
x.operator@( ) без аргументов
или вызов friend-функции с именем
operator@( x ) с одним аргументом.
x@ – унарная операция над объектом x в постфиксной форме интерпретируется как вызов функции-члена
x.operator@( int ) , где аргумент типа int - фиктивный
или вызов friend-функции с именем
operator@( x, int) , где аргумент типа int – фиктивный.
.
+ - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |=
<< >> >>= <<= == != <= >= && || ++ -- ->* , -> [] () new delete