L18

background image

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

Strona
1

OPERATORY KLASY

OPERATORY KLASY

Definicja operatora dla klasy polega na zdefiniowaniu
wewnątrz klasy odpowiedniej metody zwanej metodą
operatorową
; w ogólności metody operatorowe pozwalają
na stosowanie obiektów jako argumentów różnych
operatorów

Definicja operatora dla klasy polega na zdefiniowaniu
wewnątrz klasy odpowiedniej metody zwanej metodą
operatorową
; w ogólności metody operatorowe pozwalają
na stosowanie obiektów jako argumentów różnych
operatorów

@Obiekt

@Obiekt

Obiekt1 @ Obiekt2

Obiekt1 @ Obiekt2

@ - dowolny operator

jednoargumentowy

@ - dowolny operator

jednoargumentowy

@ - dowolny operator

dwuargumentowy

@ - dowolny operator

dwuargumentowy

background image

Strona
2

OPERATORY JEDNOARGUMENTOWE

OPERATORY JEDNOARGUMENTOWE

Definicja operatora jednoargumentowego @ dla
klasy polega na zdefiniowaniu w klasie bezparametrowej
metody operatorowej o nazwie operator@

Definicja operatora jednoargumentowego @ dla
klasy polega na zdefiniowaniu w klasie bezparametrowej
metody operatorowej o nazwie operator@

typ Klasa::operator@()
{

ciało_metody

}

typ Klasa::operator@()
{

ciało_metody

}

@ - dowolny

operator

jednoargumentow

y

@ - dowolny

operator

jednoargumentow

y

Obiekt.operator@()

Obiekt.operator@()

@Obiekt

@Obiekt

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

background image

Strona
3

char *p;
int size = 1;

Obiekt

KLASA CharInt – METODA InvertSign()

KLASA CharInt – METODA InvertSign()

Zadaniem metody jest zmiana znaku liczby na znak
przeciwny

Zadaniem metody jest zmiana znaku liczby na znak
przeciwny

‘0’| 0

liczba 0 nie posiada znaku >> brak

akcji

liczba 0 nie posiada znaku >> brak

akcji

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

background image

Strona
4

KLASA CharInt – METODA InvertSign() –
c.d.

KLASA CharInt – METODA InvertSign() –
c.d.

Konwersja z + na – polegać będzie na dopisaniu
znaku -

Konwersja z + na – polegać będzie na dopisaniu
znaku -

| | | |

‘2’ ‘2’ ‘0’ 0

‘-’

char *p;
int size = 3;

Obiekt

‘2’|‘2’|‘0’| 0

standardowa funkcja

strcpy

| | | |

‘2’ ‘2’ ‘0’ 0

‘-’

metoda

Set

size = 4;

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

background image

char *p;
int size = 4;

Obiekt

Strona
5

KLASA CharInt – METODA InvertSign() –
c.d.

KLASA CharInt – METODA InvertSign() –
c.d.

Konwersja z - na + polegać będzie na usunięciu
znaku -

Konwersja z - na + polegać będzie na usunięciu
znaku -

| | |

‘2’ ‘2’ ‘0’ 0

‘-’|‘2’|‘2’|‘0’| 0

standardowa funkcja

strcpy

| | |

‘2’ ‘2’ ‘0’ 0

metoda

Set

size = 3;

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

background image

Strona
6

KLASA CharInt – OPERATORY PRZEDROSTKOWE ++ i
--

KLASA CharInt – OPERATORY PRZEDROSTKOWE ++ i
--

Zadaniem obu operatorów jest odpowiednio zwiększanie i
zmniejszanie o 1 liczby całkowitej zapisanej w obiekcie typu
CharInt

Zadaniem obu operatorów jest odpowiednio zwiększanie i
zmniejszanie o 1 liczby całkowitej zapisanej w obiekcie typu
CharInt

operator++()

operator++()

operator--()

operator--()

liczba >=

0

liczba >=

0

kod realizujący
powiększenie o
1

kod realizujący
powiększenie o
1

liczba < 0

liczba < 0

liczba <=

0

liczba <=

0

liczba > 0

liczba > 0

odwrócenie znaku
metodą
InvertSign

odwrócenie znaku
metodą
InvertSign

kod realizujący
pomniejszenie o 1

kod realizujący
pomniejszenie o 1

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

background image

Strona
7

KLASA CharInt – OPERATORY PRZEDROSTKOWE ++ i -- -
c.d.

KLASA CharInt – OPERATORY PRZEDROSTKOWE ++ i -- -
c.d.

Realizacja kodu powiększania o 1

Realizacja kodu powiększania o 1

idź do ostatniej cyfry

cyfra=‘0’,

idź do następnej cyfry

cyfra++

cyfra==‘9’

dodaj cyfrę ‘1’ z

lewej strony liczby

czy jesteś
na cyfrze?

T

N

T

N

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

background image

Strona
8

KLASA CharInt – OPERATORY PRZEDROSTKOWE ++ i -- -
c.d.

KLASA CharInt – OPERATORY PRZEDROSTKOWE ++ i -- -
c.d.

Realizacja kodu pomniejszania o 1

Realizacja kodu pomniejszania o 1

idź do ostatniej cyfry

cyfra=‘9’,

idź do następnej cyfry

cyfra--

cyfra==‘0’

czy jesteś
na cyfrze?

T

N

T

N

pierwsza_cyfra==‘0’

i czy wielkość

liczby >1

usuń początkowe 0

T

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007

background image

Strona
9

OPERATORY JEDNOARGUMENTOWE SPECJALNE

OPERATORY JEDNOARGUMENTOWE SPECJALNE

Operatory ++ i -- w wersji przyrostkowej dla
odróżnienia

od

odpowiadających

im

operatorów

przedrostkowych realizowane są poprzez metody
operatorowe operator++ i operator– z dodatkowym
parametrem typu int

Operatory ++ i -- w wersji przyrostkowej dla
odróżnienia

od

odpowiadających

im

operatorów

przedrostkowych realizowane są poprzez metody
operatorowe operator++ i operator– z dodatkowym
parametrem typu int

Obiekt++

Obiekt++

Obiekt--

Obiekt--

Obiekt.operator++(0)

Obiekt.operator++(0)

Obiekt.operator--(0)

Obiekt.operator--(0)

Metody programowania, Wykład XVIII – Operatory
jednoargumentowe, 06.03.2007


Document Outline


Wyszukiwarka

Podobne podstrony:
L18 NP modifiers
K4 L18
L18 Laing
pli1 l18 kv1
pli1 l18 kv2
Microsoft Word L18 Rownania rozniczkowe zw2 i uklady rownan

więcej podobnych podstron