Operatory

Operator jako funkcja zaprzyjaźniona: -deklarowany w ciele klasy -definiowany poza klasą -składnia: w ciele klasy friend typZwrac operator@ (argumenty); gdzieś w pliku definicja typZwrac operator@(argumenty) { instrukcje; } użycie operatora: obiektC = obiektA @ obiektB wskazania: -gdy nie da się zastosować żadnego z powyższych sposobów, -gdy obiekty są różnych klas i potrzebny jest dostęp do składowych prywatnych. class CWektor { private: double mX,mY; friend CWektor operator*(int n, CWektor W); … } CWektor operator*(int n, CWektor w) //obiekty różnych klas { CWektor z; z.

Operator jako funkcja zaprzyjaźniona: -deklarowany w ciele klasy -definiowany poza klasą -składnia: w ciele klasy friend typZwrac operator@ (argumenty);

gdzieś w pliku definicja typZwrac operator@(argumenty) { instrukcje; } użycie operatora:

obiektC = obiektA @ obiektB wskazania: -gdy nie da się zastosować żadnego z powyższych sposobów, -gdy obiekty są różnych klas i potrzebny jest dostęp do składowych prywatnych.

class CWektor { private: double mX,mY; friend CWektor operator*(int n, CWektor W); … } CWektor operator*(int n, CWektor w) //obiekty różnych klas { CWektor z; z.mX = n *q.mX; z.mY = n q.mY; return z; } w main () … CWektor w5(0,0); w5.WYpisz(); w5=5w1; w5.Wypisz();

Przeciążenie operatora «

friend ostream & operator«(ostream &cout, CWektor a); ostream & operator« (ostream &cout, CWektor a) { a.ObliczDlugosc(); cout « “x="«a.mX« " y="«a.mY «” d=" « a.mD « endl; }

w funkcji main

cout «w1«w2;