Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Przeładowanie funkcji. Dotychczas wiedzieliśmy, że: w danym zakresie ważności może być tylko jedna funkcja o danej nazwie. Kompilator języka C++ daje.

Podobne prezentacje


Prezentacja na temat: "Przeładowanie funkcji. Dotychczas wiedzieliśmy, że: w danym zakresie ważności może być tylko jedna funkcja o danej nazwie. Kompilator języka C++ daje."— Zapis prezentacji:

1 Przeładowanie funkcji

2 Dotychczas wiedzieliśmy, że: w danym zakresie ważności może być tylko jedna funkcja o danej nazwie. Kompilator języka C++ daje nam większą swobodę. Przykład: void pisz(float); void pisz(char, int, char); pisz(‘C’, 123, ‘F’); Czy masz wątpliwość o wywołanie jakiej funkcji chodzi?

3  Przeładowanie funkcji polega na tym, że w danym zakresie ważności jest więcej niż jedna funkcja o takiej samej nazwie.  To, która z nich zostaje w danym przypadku uaktywniona zależy od typu argumentów podanych podczas wywołania.  Funkcje takie mają tę samą nazwę, ale muszą się różnić liczbą lub typem argumentów. (patrz PROG111.CPP) Przeładowujemy funkcję wówczas, gdy wykonuje ona analogiczną akcję na różnych zestawach obiektów.

4 void pisz (int x); void pisz (int y);// powtórna deklaracja void pisz (int, char); void pisz (float, char, int);  Powtórna deklaracja nie jest błędem.  W przypadku deklaracji kompilator nie zareaguje.  Zaprotestuje dopiero przy definicjach tych funkcji (patrz PROG112.CPP)

5 int rysuj (int); float rysuj (int); Przy przeładowaniu ważna jest tylko odmienność argumentów. int rysuj (float, int); int rysuj (int, float); BŁĄD ! POPRAWNIE !

6 void pisz (float); void pisz (int); void pisz (int, int); void pisz (int, float); pisz (123, (int)45.67);  void pisz (int, int); void pisz (int, int); void pisz (int, unsigned int); poprawnie !

7 Przeładowanie przy argumentach domniemanych void pisz (float); void pisz (char *); void pisz (int, float = 0); pisz (5.67);// pisz (float); pisz (”2000 r.”);// pisz (char *); pisz (123);// pisz (int, float = 0); pisz (123, 5.67);// pisz (int, float); void pisz (int);

8  W rzeczywistości funkcje przeładowane mają różne nazwy.  Kompilator zmienia nazwy wszystkich funkcji programu.  Kompilator uzupełnia nazwę funkcji dodając typ argumentów: void rys(void ); void rys (void, float); void rys (float, void ); void rys (void, float, float); rys_Fv rys_Fvf rys _Ffv rys _Fvff  Zmiana nazwy funkcji dotyczy zarówno definicji i deklaracji funkcji, jak też i wywołań.  Informacja o typie zwracanym nie jest doczepiana do nazwy.


Pobierz ppt "Przeładowanie funkcji. Dotychczas wiedzieliśmy, że: w danym zakresie ważności może być tylko jedna funkcja o danej nazwie. Kompilator języka C++ daje."

Podobne prezentacje


Reklamy Google