Poznaj C++ w$ godziny0091

Poznaj C++ w$ godziny0091



76 Godzina 5

Definicja funkcji musi być zgodna, co do wartości zwracanej, nazwy i listy parametrów, z definicją. Funkcje można przeciążać zmieniając liczbę i typ parametrów; kompilator przy wywołaniu automatycznie dobierze właściwą na podstawie argumentów.

Zmienne lokalne i parametry są widoczne tylko wewnątrz bloku, w którym zostały zadeklarowane. Parametry przekazywane przez wartość to kopie. Ich zmiana nie powoduje zmiany oryginałów w funkcji wywołującej.

Pytania i odpowiedzi

P: Dlaczego nie wykorzystywać tylko zmiennych globalnych?

O: Kiedyś tylko tak pisano programy. Jednak z biegiem czasu, kiedy programy stały się dużo większe, zmienne globalne stały się bardzo niewygodne w użyciu. Trudno było odnajdywać błędy w programach i je poprawiać. Głównym powodem tego był fakt, iż każda zmienna mogła być zmieniona przez dowolną funkcję, gdziekolwiek w programie. Lata doświadczeń przekonały programistów, że dane powinny być przechowywane lokalnie i dostęp do nich powinien być ściśle określony.

P: Dlaczego zmiana wartości argumentów funkcji nie wpływa na wartości w funkcji wywołującej?

O: Argumenty są przekazywane do funkcji przez wartość. Oznacza to, że argument w funkcji stanowi jedynie kopię wartości oryginalnej.

P: Co się stanie gdy zadeklaruję i zdefiniuję następujące funkcje?

int Pole(int szerokość, int dlugosc = 1); int Pole(int rozmiar);

Czy to jest przeciążenie? Funkcje różnią się liczbą parametrów, ale w pierwszej określiłem wartość domyślną.

O: Taka deklaracja zostanie skompilowana. Jednak w momencie użycia funkcji Pole () z jednym parametrem spowoduje błąd kompilacji świadczący o nieścisłości. Kompilator nie wie, którą funkcję ma wywołać.

Definicja funkcji musi być zgodna, co do wartości zwracanej, nazwy i listy parametrów, z definicją. Funkcje można przeciążać zmieniając liczbę i typ parametrów; kompilator przy wywołaniu automatycznie dobierze właściwą na podstawie argumentów.

Zmienne lokalne i parametry są widoczne tylko wewnątrz bloku, w którym zostały zadeklarowane. Parametry przekazywane przez wartość to kopie. Ich zmiana nie powoduje zmiany oryginałów w funkcji wywołującej.

Pytania i odpowiedzi

P: Dlaczego nie wykorzystywać tylko zmiennych globalnych?

O: Kiedyś tylko tak pisano programy. Jednak z biegiem czasu, kiedy programy stały się dużo większe, zmienne globalne stały się bardzo niewygodne w użyciu. Trudno było odnajdywać błędy w programach i je poprawiać. Głównym powodem tego był fakt, iż każda zmienna mogła być zmieniona przez dowolną funkcję, gdziekolwiek w programie. Lata doświadczeń przekonały programistów, że dane powinny być przechowywane lokalnie i dostęp do nich powinien być ściśle określony.

P: Dlaczego zmiana wartości argumentów funkcji nie wpływa na wartości w funkcji wywołującej?

O: Argumenty są przekazywane do funkcji przez wartość. Oznacza to, że argument w funkcji stanowi jedynie kopię wartości oryginalnej.

P: Co się stanie gdy zadeklaruję i zdefiniuję następujące funkcje?

int Pole(int szerokość, int dlugosc = 1); int Pole(int rozmiar);

Czy to jest przeciążenie? Funkcje różnią się liczbą parametrów, ale w pierwszej określiłem wartość domyślną.

O: Taka deklaracja zostanie skompilowana. Jednak w momencie użycia funkcji Pole () z jednym parametrem spowoduje błąd kompilacji świadczący o nieścisłości. Kompilator nie wie, którą funkcję ma wywołać.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0073 Funkcje 59Rysunek 5.2 Funkcje 59 Prototyp, pod względem typu wartości zwra
Zachowanie twarzy — twoja propozycja musi być zgodna z ich systemem wartości. Proces sądowy wiąże si
Poznaj C++ w$ godziny0194 Zaawansowane funkcje 185 57: Prost.RysujKsztalt(); 58: cout «
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
6 Marek Suchanek Każda firma, instytucja czy organizacja, by sprawnie i efektywnie funkcjonować, mus
Poznaj C++ w$ godziny0082 68Godzina 5 14:    cout « "Podaj liczbę od 0 do 10,000
DSC05829 (2) funkcji musi być uszkodzenia "... „uszkodzenie następstwemstruktury... > Z wiek
Manga?ntasy rysowanie jest łatwe7 I iDZ)nwczYmh ) mtiĄCY w>atk % Ruch nie musi być ograniczony
Picture (20) Wykład 1 Psychoterapia-metoda leczenia.Musi byc cos, co występuję jako symptom; cos co
Iniekcje dożylne (2) 2013-03-21 1 Probówka musi być wypełniona krwią do określonej objętości, zgodni
skanuj0168 190 ZA rządza^ *asobami lupzkłmi *    Kierownictwo musi byc przygotowane ,
minimum 2 obrazki a na stronie index.html musi być umieszczony link do twojego maila, lista uporządk
IMAG0692 (2) Oś zarysu noża musi być ściśle prostopadła do osi powierzchni, na której jest nacinany&
Obrona musi być konieczna, co oznacza jej niezbędność dla odparcia zamachu, aby zwłoka albo powstrzy

więcej podobnych podstron