Przeładowanie operatorów

background image

Przeładowanie operatorów

Przeładowania operatorów dokonuje się definiując swoją własną funkcję, która:

o

nazywa się operator@ - gdzie @ oznacza symbol operatora, który
chcemy przeładować

o

jako co najmniej jeden z argumentów przyjmuje obiekt danej klasy
(obiekt, nie wskaźnik do obiektu)

typ_zwracany operator@ ( argumenty )
{

//ciało funkcji

}

Lista operatorów, które można przeładowywać:

!

++

--

, +

-

*

/

%

^

&

|

~

=

<

>

+=

-=

*=

/=

%=

^=

&=

|=

<<

>>

<<= >>= = =

!=

<=

>=

&&

||

->*

->*

new

delete ()

[]

Operatory, których nie można przeładować:

.

- tak się odnosimy do składnika klasy;

.*

- tak wybieramy składnik wskaźnikiem

::

- tak określamy zakres

Sposoby

definiowana

operatorów

przeładowanych

(funkcji

operatorowych):

o

Jako funkcja składowa klasy ( wymaga aby obiekt stojący po lewej
stronie operatora był obiektem jej klasy),

o

Jako zwykła funkcja globalna


Jeśli operator definiujemy jako funkcję składową klasy, to ma ona zawsze o
jeden argument mniej niż ta sama funkcja napisana w postaci funkcji globalnej.
Spowodowane jest to istnieniem wskaźnika this.

Kiedy operator ma być funkcją składową a kiedy globalną?

o

Jeżeli zmienia w jakiś sposób obiekt, na którym pracuje, to powinien być
zdefiniowany jako funkcja składowa klasy. Operator zwraca wtedy
l wartość, np. =

++

--

+= -=

o

Jeśli operator nie modyfikuje obiektu, wówczas powinien być w postaci
funkcji globalnej.

Wyjątek:

Cztery operatory, które musza być niestatycznymi funkcjami składowymi:

=

[]

()

->


Wyszukiwarka

Podobne podstrony:
Przeładowanie operatorów
9 koncentrator przełącznik
The uA741 Operational Amplifier[1]
operatory i funkcje matematyczne
operator maszyn lesnych 833[02] o1 03 n
mechanik operator pojazdow i maszyn rolniczych 723[03] z2 04 n
Kierowca operator wózków jezdniowych 833401
mechanik operator pojazdow i maszyn rolniczych 723[03] o1 05 u
OPERAT STABLE VERSION ugoda id Nieznany
operator urzadzen przemyslu szklarskiego 813[02] z2 07 n
4 Steyr Operation and Maintenance Manual 8th edition Feb 08
przełączniki optyczne
operator urzadzen przemyslu spozywczego 827[01] z2 02 u

więcej podobnych podstron