Poznaj C++ w$ godziny0194

Poznaj C++ w$ godziny0194



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):

****************************************

****************************************


W programie, zmienne dlugosc i szerokość są przekazywane do wielu funkcji. Zauważ, że czasami, jako pierwsza jest przekazywaną szerokość, a czasami dlugosc.


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ść.

Wykorzystywanie wartości domyślnych

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):

****************************************

**★**★★**★*★★**★★★★*★*★★*************★**


W programie, zmienne długość i szerokość są przekazywane do wielu funkcji. Zauważ, że czasami, jako pierwsza jest przekazywaną szerokość, a czasami dlugosc.


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ść.

Wykorzystywanie wartości domyślnych

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.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0196 Zaawansowane funkcje 187 53:    } 54:    cou
Poznaj C++ w$ godziny0198 Zaawansowane funkcje 189Inicjalizacja obiektów Dotychczas, wartości wewnęt
Poznaj C++ w$ godziny0200 Zaawansowane funkcje 191Listing 13.3. Konstruktory
Poznaj C++ w$ godziny0202 Zaawansowane funkcje 193 W liniach 53 i 54 wypisywany jest wiek obydwu KOT
Poznaj C++ w$ godziny0119 Zaawansowane sterowanie programem 107Pętle while Pętla while pozwala na po
Poznaj C++ w$ godziny0121 Zaawansowane sterowanie programem 109 W liniach 12-15 wprowadzamy wartości
Poznaj C++ w$ godziny0123 Zaawansowane sterowanie programem 111 W linii 32 obliczana jest reszta z d
Poznaj C++ w$ godziny0125 Zaawansowane sterowanie programem Listing 8.6. Pomijanie pętli while 1:
Poznaj C++ w$ godziny0127 Zaawansowane sterowanie programem 115Listing 8.8. Jeszcze raz pętla while
Poznaj C++ w$ godziny0129 Zaawansowane sterowanie programem 117Listing 8.10. Demonstracja wielokrotn
Poznaj C++ w$ godziny0131 Zaawansowane sterowanie programem 119EFEKT DZIAŁANIA: No to ile razy sie p
Poznaj C++ w$ godziny0133 Zaawansowane sterowanie programem 121 Jaki znak?
Poznaj C++ w$ godziny0135 Zaawansowane sterowanie programem 153 20:    break; 21: &nb
Poznaj C++ w$ godziny0158 Zaawansowane wykorzystanie wskaźników 147 32:    } 33: 34:
Poznaj C++ w$ godziny0160 Zaawansowane wykorzystanie wskaźników 149Do czego służy wskaźnik this Gdyb
Poznaj C++ w$ godziny0162 Zaawansowane wykorzystanie wskaźników 151 Zaawansowane wykorzystanie wskaź
Poznaj C++ w$ godziny0182 Zaawansowane referencje i wskaźniki 171 int PobierzWiek() const { return j
Poznaj C++ w$ godziny0184 Zaawansowane referencje i wskaźniki 173 Ponieważ wiemy, że obiekt nie będz
Poznaj C++ w$ godziny0190 Zaawansowane referencje i wskaźniki 179 ZAWSZE NIGDY Zawsze przekazuj p

więcej podobnych podstron