Zaawansowane funkcje 185
57: |
Prost.RysujKsztalt(); | |
58: |
cout « "\nRysujKsztalt(40 | |
59: |
Prost.RysujKsztalt(40,2); | |
60: |
return 0; | |
61: |
} |
EFEKT DZIAŁANIA:
RysujKsztalt():
****************************** ****************************** ****************************** ****************************** ****************************** ****************** * * **********
RysujKsztalt(40, 2):
****************************************
****************************************
ANALIZA:
Zwróć uwagę na zawartość linii 13 i 14, w których przeciążana jest funkcja RysujKsztalt (). Implementacja tych metod zawarta jest w liniach 29-49. Funkcja nie pobierająca parametrów wywołuje funkcję z parametrami przekazując do niej wartości przechowywane w zmiennych klasy. Zawsze staraj się unikać powielania kodu w dwóch funkcjach. Powtarzanie takich samych instrukcji w dwóch (lub więcej) miejscach utrudnia ich modyfikację i często prowadzi do „rozsynchronizowania” programu.
Program główny, zawarty w liniach 52 — 61, tworzy obiekt klasy Prostokąt i wywołuje metodę RysujKsztalt () najpierw bez, a potem z dwoma parametrami.
Kompilator, na podstawie liczby parametrów, decyduje, którą funkcję ma wykonać. Można sobie wyobrazić trzecią wersję funkcji, pobierającą np. tylko jeden rozmiar i dodatkową zmienną mówiącą, czy podana wartość ma być traktowana jako długość czy jako szerokość.
Podobnie jak w przypadku zwykłych funkcji, podobnie w przypadku metod klasy
można określić domyślne wartość parametrów, które mają być przyjmowane w momencie pominięcia któregoś z argumentów. Listing 13.2. ilustruje definiowanie wartości domyślnych dla wewnętrznych funkcji prostej klasy.
57: Prost.RysujKsztalt () ;
58: cout « "\nRysujKsztalt(40,2): \n”;
59: Prost.RysujKsztalt(40,2);
60: return 0;
61: )
RysujKsztalt():
★*************★★★**★*★**★★*★★*
★**★************★*★*★★********
*******************************
******★*****★★*★★**★★★****★**★
i******************************
****★**•*****•**★★★*■*★***★*★***★
RysujKsztalt(40# 2):
****************************************
**★**★★**★*★★**★★★★*★*★★*************★**
Zwróć uwagę na zawartość linii 13 i 14, w których przeciążana jest funkcja RysujKsztalt (). Implementacja tych metod zawarta jest w liniach 29-49. Funkcja nie pobierająca parametrów' wywołuje funkcję z parametrami przekazując do niej wartości przechowywane w zmiennych klasy. Zawsze staraj się unikać powielania kodu w dwóch funkcjach. Powtarzanie takich samych instrukcji w dwóch (lub więcej) miejscach utrudnia ich modyfikację i często prowadzi do „rozsynchronizowania" programu.
Program główny, zawarty w liniach 52 - 61, tworzy obiekt klasy Prostokąt i wywołuje metodę Rysu jKsztalt () najpierw bez, a potem z dwoma parametrami.
Kompilator, na podstawie liczby parametrów, decyduje, którą funkcję ma wykonać. Można sobie wyobrazić trzecią wersję funkcji, pobierającą np. tylko jeden rozmiar i dodatkową zmienną mówiącą czy podana wartość ma być traktowana jako długość czy jako szerokość.
Podobnie jak w przypadku zwykłych funkcji, podobnie w przypadku metod klasy można określić domyślne wartość parametrów, które mają być przyjmowane w momencie pominięcia któregoś z argumentów. Listing 13.2. ilustruje definiowanie wartości domyślnych dla wewnętrznych funkcji prostej klasy.