Upload
greg
View
213
Download
0
Embed Size (px)
Citation preview
Szablon dla tlumaczy
2
Cz I ( Podstawy obsugi systemu WhizBang (Nagwek strony)
Rozdzia 10.Funkcje zaawansowane
W rozdziale 5., Funkcje, poznae podstawy pracy z funkcjami. Teraz, gdy wiesz take, jak dziaaj wskaniki i referencje, moesz zgbi zagadnienia dotyczce funkcji.
Z tego rozdziau dowiesz si, w jaki sposb:
przecia funkcje skadowe,
przecia operatory,
pisa funkcje, majc na celu tworzenie klas z dynamicznie alokowanymi zmiennymi.
Przecione funkcje skadowe
Z rozdziau 5. dowiedziae si jak implementowa polimorfizm funkcji, czyli ich przecianie, przez tworzenie dwch lub wicej funkcji o tych samych nazwach, lecz innych parametrach. Funkcje skadowe klas mog by przeciane w dokadnie ten sam sposb.
Klasa Rectangle (prostokt), zademonstrowana na listingu 10.1, posiada dwie funkcje DrawShape() (rysuj ksztat). Pierwsza z nich, nie posiadajca parametrw, rysuje prostokt na podstawie biecych wartoci skadowych danego egzemplarza klasy. Druga funkcja otrzymuje dwie wartoci (szeroko i dugo) i rysuje na ich podstawie prostokt, ignorujc biece wartoci zmiennych skadowych.
Listing 10.1. Przecione funkcje skadowe
0: //Listing 10.1 Przecianie funkcji skadowych klasy
1:
2: #include
3:
4: // Deklaracja klasy Rectangle
5: class Rectangle
6: {
7: public:
8: // konstruktory
9: Rectangle(int width, int height);
10: ~Rectangle(){}
11:
12: // przeciona funkcja skadowa klasy
13: void DrawShape() const;
14: void DrawShape(int aWidth, int aHeight) const;
15:
16: private:
17: int itsWidth;
18: int itsHeight;
19: };
20:
21: // implementacja konstruktora
22: Rectangle::Rectangle(int width, int height)
23: {
24: itsWidth = width;
25: itsHeight = height;
26: }
27:
28:
29: // Przeciona funkcja DrawShape - nie ma parametrw
30: // Rysuje ksztat w oparciu o biece wartoci zmiennych skadowych
31: void Rectangle::DrawShape() const
32: {
33: DrawShape( itsWidth, itsHeight);
34: }
35:
36:
37: // Przeciona funkcja DrawShape - z dwoma parametrami
38: // Rysuje ksztat w oparciu o podane wartoci
39: void Rectangle::DrawShape(int width, int height) const
40: {
41: for (int i = 0; i