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