Poznaj C++ w$ godziny0205

Poznaj C++ w$ godziny0205



196


Godzina 14


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:

18:    } ;

19:

20:    Licznik::Licznik():

21:    jegoWartosc (0)

22:    {>;

23:

24 :    int main ()

25: .    {

26:    Licznik i;

27:    cout « "Wartość i wynosi " « i.PobierzWartosc() « endl;

28:    return 0;

29:    }

EFEKT DZIAŁANIA:

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:

18:    } ;

19:

20:    Licznik::Licznik():

21:    jegoWartosc(0)

22:    {) ;

23:

24 :    int main ()

25:    (

26:    Licznik i;

27:    cout « "Wartość i wynosi " « i.PobierzWartosc() « endl;

28:    return 0;

29:    )

EFEKT DZIAŁANIA:

Wartość i wynosi 0

ANALIZA:


196


Godzina 14


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.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0206 197Przeciążanie operatorów Listing 14.2. Przeciążenie operatora
Poznaj C++ w$ godziny0082 68Godzina 5 14:    cout « "Podaj liczbę od 0 do 10,000
Poznaj C++ w$ godziny0215 206Godzina 14 W liniach 34-37 kasowane i odtwarzane są wewnętrzne zmienne
Poznaj C++ w$ godziny0195 186Godzina 13 Listing 13.2. Wykorzystanie wartości
Poznaj C++ w$ godziny0030 14 Godzina 1 P: Czy można ignorować ostrzeżenia kompilatora (wamings) O: W
Poznaj C++ w$ godziny0063 48 Godzina 4 12:    cout « "


Poznaj C++ w$ godziny0084 70 Godzina 5 70 Godzina 5 8: 9: 10 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0100 86 Godzina 6 86 Godzina 6 11 12 13 14 15 16 17 18 19 20
Poznaj C++ w$ godziny0140 Wskaźniki 129 Wskaźniki 129 13 14 15 16 17 18 cout « "longVar: "
Poznaj C++ w$ godziny0191 IfZaawansowane narzędziaGodzina 13    Zaawansowane funkcje
Poznaj C++ w$ godziny0207 198 Godzina 14 198 Godzina 14 ANALIZA: Implementacja operatora ++, zawarta
Poznaj C++ w$ godziny0208 Przeciążanie operatorów 199Listing 14.3. Operator przedrostkowy i
Poznaj C++ w$ godziny0211 202 Godzina 14Listing 14.5. Operator
Poznaj C++ w$ godziny0213 204 Godzina 14 przez wskaźniki zawarte w obiekcie oryginalnym. Widać to by
Poznaj C++ w$ godziny0217 208 Godzina 14 licz: 5 ANALIZA: W linii 11 zaszła ważna zmiana. Przeciążyl
Poznaj C++ w$ godziny0231 222 Godzina 15 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
IMAG0285 Mapa 5055 (2002) Przeciwdziałanie 1.0 godzinie 1500/14,3 statek znajduje się w pozycji 9 ■
Poznaj C++ w$ godziny0058 Instrukcje i wyrażenia 43Listing 4.2. Obliczanie wartości wyrażenia // Lis
Poznaj C++ w$ godziny0080 66 Godzina 5Listing 5.3. Przekazywanie przez wartość 1:    

więcej podobnych podstron