Poznaj C++ w$ godziny0215

Poznaj C++ w$ godziny0215



206



Godzina 14

W liniach 34-37 kasowane i odtwarzane są wewnętrzne zmienne obiektu. Nie jest to operacja niezbędna, ale pozwala ona uniknąć problemów z „gubieniem” pamięci w przypadku obiektów o zmiennym rozmiarze, dla których nie został przeciążony operator przypisania.


Operatory konwersji

Co się stanie, gdy spróbujesz przypisać zmienną jednego z wbudowanych w C++ typów, taką jak int czy unsigned short do obiektu, który sam zdefiniowałeś? Listing 14.7. ponownie definiuje klasę Licznik i próbuje przypisać zmienną typu int do obiektu klasy Licznik.


Program 14.7 nie skompiluje się!


Listing 14.7. Próba przypisania zmiennej int do obiektu klasy Licznik

1:    // Listing 14.7

2:'    // Ten program się nie skompiluje!

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 UstawWartosc(int x) {jegoWartosc = x; }

14:    private:

15:    int jegoWartosc;

16:

17:    } ;

18:

19:    Licznik::Licznik():

20:    jegoWartosc(0)

21:    {}

22:

23:    int main()

24:    {

25:    int zlnt = 5;

26:    Licznik licz =    zlnt;

27:    cout « "licz:    "    « licz.PobierzWartosc() « endl;

28:    return 0;

29:    }

206



Godzina 14

W liniach 34-37 kasowane i odtwarzane są wewnętrzne zmienne obiektu. Nie jest to operacja niezbędna, ale pozwala ona uniknąć problemów z „gubieniem" pamięci w przypadku obiektów o zmiennym rozmiarze, dla których nie został przeciążony operator przypisania.


Operatory konwersji

Co się stanie, gdy spróbujesz przypisać zmienną jednego z wbudowanych w C++ typów, taką jak int czy unsigned short do obiektu, który sam zdefiniowałeś? listing 14.7. ponownie definiuje klasę Licznik i próbuje przypisać zmienną typu int do obiektu klasy Licznik.


Program 14.7 nie skompiluje się!


Listing 14.7. Próba przypisania zmiennej int do obiektu klasy Licznik

1:    II Listing 14.7

2:    II Ten program się nie skompiluje!

3:

4:

5:    (tinclude <iostream.h>

6:

7:    class Licznik

8:    1

9:    public:

10:    Licznik!) ;

11:    -Liczniki) {}

12:    int PobierzWartosc()const ( return jegoWartosc; )

13:    void OstawWartosc(int x) {jegoWartosc = x; )

14:    private:

15:    int jegoWartosc;

16:

17:    );

18:

19:    Licznik::Licznik():

20:    jegoWartosc(0)

21:    {}

22:

23:    int main()

24:    {

25:    int zlnt = 5;

26:    Licznik licz =    zlnt;

27:    cout « "licz:    "    « licz.PobierzWartosc!) « endl;

28:    return 0;

29:    )


Wyszukiwarka

Podobne podstrony:
14.Hydrosfory Negatywne oddziaływania człowieka mogą prowadzić do: KATASTROFY EKOLOGICZNEJ -nie jest
page0209 Ryc. 13. Skrzydlate genjusze semicko-asyryjskie (zob. ryc. 14, 20, 34, 37, 38, 41, 158, 162
Poznaj C++ w$ godziny0082 68Godzina 5 14:    cout « "Podaj liczbę od 0 do 10,000
Poznaj C++ w$ godziny0205 196Godzina 14 Listing 14.1. Klasa Licznik 1:    // Listing
Poznaj C++ w$ godziny0112 Więcej o klasach 99Klasy wykorzystujące inne klasy jako dane wewnętrzne Ba
Poznaj C++ w$ godziny0142 Wskaźniki 131Przypisywanie adresu do wskaźnika Jak już mówiliśmy, każda zm
Poznaj C++ w$ godziny0146 Wskaźniki 135 Wskaźniki 135 ANALIZA: W tym programie deklarujemy dwie zmie
Poznaj C++ w$ godziny0161 150Godzina 10 *pJeden = 5; Napisanie takiej instrukcji spowoduje komunikat
page0058 34 Ryby kościste: Cierniopromienne (Kołkowate). Zrosłogardłe. Zrosłoszczękie. Skóra naga. J
14 (148) 14 KATARZYNA. Chłop... Chłop! co było a nie jest, to się nie pisę w legestr. Ten jest chłop
dsc00068 (14) pi. Zależnie od przyczyny: 1. Pęknięcie w bliźnie; ruptura uteri in cicatricae I Jest
IMG85 (2) 4.14. MAPY MENTALNE (Mapy mentalne, z ang. mental maps lub mind-maps). Jest to metoda wiz

więcej podobnych podstron