Definiowanie znaczenia operatorów
gdy operator dwuargumentowy @@ jest definiowany jako funkcja składowa w klasie X notacja:
obiekt A z klasy X jest pierwszym (lewym) argumentem operatora @@.
w przypadku zdefiniowania tego operatora jako funkcji niezależnej notacja:
operatory jednoargumentowe przedrostkowe definiuje się jako metody bez argumentów, bądź jako funkcje niezależne z jednym argumentem
complex operator-(); //minus jednoargumentowy
//jako funkcja składowa,...
friend complex operator-(complex); //... bądź jako
Możliwości i ograniczenia
można przeciążać zarówno operatory dwuargumentowe jak i jednoargumentowe
wolno przeciążać tylko istniejące operatory (nie można tworzyć nowych)
operator zachowuje typową łączność i priorytet oraz musi pobierać typową liczbę argumentów
co najmniej jeden z operandów musi być obiektem, a co za tym idzie, nie można zmienić zwyczajowego znaczenia operatorów
nie można przeciążyć operatora zastosowanego do wskaźnika
operatory przeciążone mogą być funkcjami niezależnymi(zwykle zaprzyjaźnionymi):
friend complex operator+(complex, complex);
friend complex operator*(complex, complex);
albo metodami (funkcjami składowymi):
complex operator+(complex);
complex operator*(complex);