200 Godzina 14
Nartosc i wynosi: 0 Wartość i wynosi: 1 Wartość i wynosi: 2 Wartość a: 3 oraz i: 3 Wartość a: 4 oraz i: 4
Operator przyrostkowy jest deklarowany w linii 15 i definiowany w liniach 32-36. Zauważ, że deklaracja operatora przedrostkowego nie zawiera parametru w przeciwieństwie do deklaracji operatora przyrostkowego. Parametr w deklaracji operatora przyrostkowego jest jedynie informacją dla kompilatora i nie jest nigdy wykorzystywany.
Operator inkrementacji jest operatorem unarnym co oznacza, że operuje na tylko jednym obiekcie. Operator dodawania ( + ) jest operatorem binarnym, działającym na dwóch obiektach. Jak przeciążyć operator dodawania w klasie Licznik?
Celem jest możliwość zadeklarowania dwóch obiektów klasy Licznik, a następnie dodania ich tak, jak w przykładzie:
Licznik 1Jeden, lDwa, ITrzy;
ITrzy = 1Jeden + lDwa;
Można by napisać funkcję Dodaj (), przekazać do niej obiekt Licznik, dodać wartości i zwrócić obiekt klasy Licznik jako wynik. Listing 14.4 ilustruje to rozwiązanie.
1: // Listing 14.4
2: // Funkcja Dodaj()
3:
4:
5: #include <iostream.h>
6:
7: class Licznik
8: {
9: public:
10: Liczniki);
11: Licznik(int wartoscPoczatkowa);
12: -Liczniki) {}
13: int PobierzWartosc()const 1 return jegoWartosc; )
14: void UstawWartosc(int x) {jegoWartosc = x; }
15: Licznik Dodaj(const Licznik &) ;
16:
17: private:
18: int jegoWartosc;
19:
20: ) ;
21:
Wartość i wynosi: 0 Wartość i wynosi: 1 Wartość i wynosi: 2 Wartość a: 3 oraz i: 3 Wartość a: 4 oraz i: 4
ANALIZA
Operator przyrostkowy jest deklarowany w linii 15 i definiowany Ej w liniach 32-36. Zauważ, że deklaracja operatora przedrostkowego nie zawiera parametru w przeciwieństwie do deklaracji operatora przyrostkowego. Parametr w deklaracji operatora przyrostkowego jest jedynie informacją dla kompilatora i nie jest nigdy wykorzystywany.
Operator inkrementacji jest operatorem unarnym co oznacza, że operuje na tylko jednym obiekcie. Operator dodawania ( + ) jest operatorem binarnym, działającym na dwóch obiektach. Jak przeciążyć operator dodawania w klasie Licznik?
Celem jest możliwość zadeklarowania dwóch obiektów klasy Licznik, a następnie dodania ich tak, jak w przykładzie:
Licznik 1Jeden, lDwa, ITrzy;
ITrzy = lJeden + lDwa;
Można by napisać funkcję Dodaj (), przekazać do niej obiekt Licznik, dodać wartości i zwrócić obiekt klasy Licznik jako wynik. Listing 14.4 ilustruje to rozwiązanie.
1: // Listing 14.4
2: // Funkcja Dodaj ()
3:
4:
5: Itinclude <iostream.h>
6:
7: class Licznik
8: 1
9: public:
10: Liczniki);
11: Licznik(int wartoscPoczatkowa);
12: -Liczniki) {)
13: int PobierzWartosc()const { return jegoWartosc; )
14: void OstawWartosc(int x) (jegoWartosc = x; )
15: Licznik Dodaj(const Licznik S);
16:
17: private:
18: int jegoWartosc;
19:
20: ) ;
21: