Listing 14.1. Klasa Licznik
1: // Listing 14.1
2: // Klasa Licznik
3:
4:
S: finclude <iostream.h>
6:
7: class Licznik
8: {
9: public:
10: Licznik ();
11: “Licznik(){}
12: int PobierzWartosc() const { return jegoWartosc; }
13: void UstawWartosc(int x) { jegoWartosc = x; }
14:
15: private:
16: int jegoWartosc;
17:
19:
20: Licznik::Licznik():
21: jegoWartosc (0)
22: {>;
23:
24 : int main ()
26: Licznik i;
27: cout « "Wartość i wynosi " « i.PobierzWartosc() « endl;
28: return 0;
Wartość i wynosi 0
ANALIZA:
Jak widać, stworzyliśmy całkowicie bezużyteczną klasę. Jej jedyna zmienna wewnętrzna jest typu int. Domyślny konstruktor, zadeklarowany w linii 10 i zdefiniowany w 20, nadaje tej zmiennej wartość 0.
W przeciwieństwie do zwykłej, „z krwi i kości” zmiennej typu int, obiekt klasy Licznik nie może zostać ani zwiększony, ani zmniejszony, nie można mu nadać żadnej wartości ani nic do niego dodać. Skomplikowane jest również wypisywanie jego wartości.
Funkcja inkrementująca
Przeciążenie operatora przywraca część funkcjonalności utraconej podczas definiowania własnej klasy takiej jak Licznik. Listing 14.2 ilustruje przeciążenie operatora inkrementacji.
Listing 14.1. Klasa Licznik
1: II Listing 14.1
2: // Klasa Licznik
3:
4:
5: #include <iostream.h>
6:
7: class Licznik
8: {
9: public:
10: Licznik ();
11: -Licznik () {)
12: int PobierzWartosc() const ( return jegoWartosc; )
13: void OstawWartosc(int x) ( jegoWartosc = x; }
14:
15: private:
16: int jegoWartosc;
17:
19:
20: Licznik::Licznik():
21: jegoWartosc(0)
22: {) ;
23:
24 : int main ()
26: Licznik i;
27: cout « "Wartość i wynosi " « i.PobierzWartosc() « endl;
28: return 0;
Wartość i wynosi 0
ANALIZA:
Jak widać, stworzyliśmy całkowicie bezużyteczną klasę. Jej jedyna zmienna wewnętrzna jest typu int. Domyślny konstruktor, zadeklarowany w linii 10 i zdefiniowany w 20, nadaje tej zmiennej wartość 0.
W przeciwieństwie do zwykłej, „z krwi i kości” zmiennej typu int, obiekt klasy Licznik nie może zostać ani zwiększony, ani zmniejszony, nie można mu nadać żadnej wartości ani nic do niego dodać. Skomplikowane jest również wypisywanie jego wartości.
Funkcja inkrementująca
Przeciążenie operatora przywraca część funkcjonalności utraconej podczas definiowania własnej klasy takiej jak Licznik. Listing 14.2 ilustruje przeciążenie operatora inkrementacji.