Szablony funkcji
Stronę tą wyświetlono już: 3043 razy
Szablony funkcji dodają nowej funkcjonalności programowej, tworzy się je za pomocą słowa kluczowego template oraz typename do tworzenia znaczników typów danych szablonu funkcji. Przykładowy kod szablonu funkcji dzielącej jedną wartość przez drugą:
- #include <iostream>
- using namespace std;
- template // oznacza, że to będzie szablon funkcji
- <typename typ> // wewnątrz nawiasów <> zapisuje się deklaracje typów (może być ich wiele oddzielonych przecinkami)
- typ // zwracana wartość typ
- Division(typ a // zmienna typu typ
- , typ b // zmienna typu typ
- ){
- return a / b;
- }
- int main(){
- cout<<"3.5 / 5 = "<<Division<int>(3, 4)<<endl<<endl; // to wywołanie sprawi, że kompilator utworzy automatycznie kod funkcji int Division(int a, int b){return a*b;}
- cout<<"3.5 / 5 = "<<Division<double>(3.5, 5.)<<endl<<endl; // to wywołanie sprawi, że kompilator utworzy automatycznie kod funkcji double Division(duble a, double b){return a*b;}
- cout<<"Wcisnij dowolny przycisk, aby zamknac program...";
- cin.get();
- return 0;
- }
Kompilator widząc szablon funkcji, oraz mając zadeklarowany konkretny szablon funkcji tworzy dany egzemplarz funkcji zwracający i pobierający dany typ zmiennych. Dzięki takiemu rozwiązaniu programista nie musi tworzyć iluś tam wersji funkcji, aby poprawnie realizować swój projekt, a jedynie wykorzystywać konstrukcję szablonową wszędzie tam, gdzie jest to potrzebne. Warto też zwrócić uwagę na to, że wynikiem działania funkcji pierwszej będzie 0 ponieważ działanie to jest wykonywane na liczbach całkowitych i program zaokrągla wartość w dół. W przypadku drugiej funkcji zwrócona zostanie wartość 0.7 (czyli jak najbardziej poprawna).

Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski

Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz

Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha

Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams

Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis

Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół

Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz

Tytuł:
OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV
Autor:
Adrian Kaehler, Gary Bradski

Tytuł:
C++ w 24 godziny. Wydanie VI
Autor:
Rogers Cadenhead, Jesse Liberty

Tytuł:
C++ Optymalizacja kodu. Sprawdzone techniki zwiększania wydajności
Autor:
Guntheroth Kurt