202 Godzina 14
1:
2:
3:
4:
5:
6:
7:
8:
9:
10
11
12
13
14
15
16
17
18
19
20 21 22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Listing 14.5
// przeciążony operator plus (+) finclude <iostream.h>
class Licznik
{
public:
Licznik ();
Licznik(int wartoscPoczatkowa);
-Licznik () {}
int PobierzWartosc()const { return jegoWartosc; ) void UstawWartosc(int x) {jegoWartosc = x; } Licznik operator* (const Licznik &); private:
int jegoWartosc;
Licznik::Licznik(int wartoscPoczatkowa): jegoWartosc(wartoscPoczatkowa)
Licznik::Licznik(): jegoWartosc(0)
Licznik Licznik::operator* (const Licznik & rhs)
{
return Licznik(jegoWartosc * rhs.PobierzWartosc());
}
int main()
Licznik lJeden(2), lDwa(4), ITrzy;
ITrzy = 1Jeden + lDwa;
cout « "1 Jeden: " « 1 Jeden.PobierzWartosc()« endl; cout « "lDwa: " « lDwa.PobierzWartosc() « endl; cout « "ITrzy: " « ITrzy.PobierzWartosc() « endl;
return 0;
}
1Jeden: 2 lDwa: 4 ITrzy: 6
W linii 15 deklarujemy operator +. Linie 28-31 zawierają jego definicję. Porównaj ją z definicją funkcji Dodaj (). Są one prawie identyczne. Jednak składnia ich wykorzystania jest skrajnie różna. Łatwiej jest napisać:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10
11
12
13
14
15
16
17
18
19
20 21 22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 4 0 41 4 2
// Listing 14.5
// przeciążony operator plus (•►) #include <iostream.h>
class Licznik
public:
Licznik () ;
Licznik(int wartoscPoczatkowa);
-Licznik (){}
int PobierzWartosc()const { return jegoWartosc; ) void UstawWartosc(int x) (jegoWartosc = x; ) Licznik operatorł (const Licznik &); private:
int jegoWartosc;
Licznik::Licznik(int wartoscPoczatkowa): jegoWartosc(wartoscPoczatkowa)
Licznik::Licznik(): jegoWartosc(0)
Licznik Licznik::operator+ (const Licznik 6 rhs)
return Licznik(jegoWartosc + rhs.PobierzWartosc());
int main()
Licznik lJeden(2), lDwa(4), ITrzy;
ITrzy = 1Jeden + lDwa;
cout « "1 Jeden: " « lJeden.PobierzWartosc()« endl; cout « "lDwa: " « lDwa.PobierzWartosc() « endl; cout « "ITrzy: " « ITrzy.PobierzWartosc() « endl;
return 0;
1Jeden; 2 lDwa: 4 ITrzy: 6
ANALIZA