Zaawansowane CPP: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 19: | Linia 19: | ||
***koncepty (STL) | ***koncepty (STL) | ||
***kontenery i algorytmy generyczne | ***kontenery i algorytmy generyczne | ||
***klasy cech i wytycznych | ***klasy cech i wytycznych, funcje typów | ||
**metaprogramowanie, szablony wyrażeń | **metaprogramowanie, szablony wyrażeń | ||
**Inteligentne wskaźniki | **Inteligentne wskaźniki | ||
Linia 25: | Linia 25: | ||
*Wyjątki. | *Wyjątki. | ||
**bezpieczna obsługa wyjątków | **bezpieczna obsługa wyjątków | ||
*Alokacja pamięci | *Alokacja pamięci | ||
**operator new, własne alokatory pamięci | **operator new, własne alokatory pamięci |
Wersja z 10:59, 15 wrz 2006
Forma zajęć
Wykład (30 godzin) + laboratorium (30 godzin)
Opis
Celem przedmiotu jest zapoznanie studentów z zaawansowanymi technikami programowania obiektowego w C++.
Sylabus
Autor
- Piotr Białas - Uniwersytet Jagielloński, Wydział Fizyki, Astronomii i Informatyki Stosowanej,
- Wojciech Palacz - Uniwersytet Jagielloński, Wydział Fizyki, Astronomii i Informatyki Stosowanej,
Wymagania wstępne
- Programowanie Obiektowe
- Znajomość C++
Zawartość
- Szablony (templates)
- programowanie generyczne
- koncepty (STL)
- kontenery i algorytmy generyczne
- klasy cech i wytycznych, funcje typów
- metaprogramowanie, szablony wyrażeń
- Inteligentne wskaźniki
- Funktory
- programowanie generyczne
- Wyjątki.
- bezpieczna obsługa wyjątków
- Alokacja pamięci
- operator new, własne alokatory pamięci
- obsługa błędów przydziału pamięci
- alokatory w STL
- Narzędzia programistyczne
- testowanie (CPPUnit)
Literatura
- D. Vandervoorde, N. Josuttis "C++ Szablony, Vademecum profesjonalisty", Helion S.A 2003.
- Alexandrescu "Nowoczesne projektowanie W C++", Wydawnictwa Naukowo-Techniczne 2005.
- N. Josuttis "C++ Biblioteka Standardowa, podręcznik programisty", Wydawnictwo HELION 2003.
- B. Eckel, Ch. Allinson, "Thinking in C++" Edecja Polska, tom 2, Wydawnictwo HELION 2004.
(tymczasowe) Uwagi dotyczące latex2mediawiki
Poniższe makra powodują, że kod C++ jest poprawnie tłumaczony:
\newcommand{\beginlstlisting}{ <nowiki>\disablenowiki } \newcommand{\beginlstlisting}[1]{ <nowiki>\disablenowiki } \newcommand{\endlstlisting}{</nowiki>\enablenowiki \EATWS } \newcommand{\cd}[1]{<code><nowiki>\disablenowiki #1</nowiki>\enablenowiki</code>} \renewcommand{\beginverbatim}{\beginlstlisting } \renewcommand{\endverbatim}{\endlstlisting } \renewcommand{\verb}{\renewcommand*{\PIPEREAD} {<code><nowiki>\disablenowiki\renewcommand*{\PIPEREAD} {\enablenowiki</nowiki></code>\renewcommand*{\PIPEREAD} {\begin{nowiki}\PIPE \end{nowiki} }}}}
Moduły
- Szablony I (ćwiczenia)
- Programowanie uogólnione (ćwiczenia)
- Szablony II (ćwiczenia)
- Testowanie (ćwiczenia)
- Klasy cech (ćwiczenia)
- Funkcje typów i inne sztuczki (ćwiczenia)
- Klasy wytycznych (ćwiczenia)
- Metaprogramowanie (ćwiczenia)
- Szablony wyrażeń (ćwiczenia)
- Inteligentne wskaźniki (ćwiczenia)
- Funktory (ćwiczenia)
- Używanie funktorów (ćwiczenia)
- Wyjątki (ćwiczenia)
- Zarządzanie pamięcią (ćwiczenia)
- Wyjątkowo odporny kod (ćwiczenia)
Literatura uzupełniająca
- Stroustroup "Jezyk C++", Wydawnictwa Naukowo-Techniczne 2002.
- S. Meyers,"C++, 50 efektywnych sposobów na udoskonalenie Twoich programów", Wudawnictwo HELION 2003.
- S. Meyers, "Język C++ bardziej efektywny", Wydawnictwa Naukowo-Techniczne 1998.
- S. Meyers, "STL w praktyce. 50 sposobów efektywnego wykorzystania", Wydawnictwo HELION, 2004.
- E. Gamma, R. Helm, R. Johnson, J. Vlissides, "Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku",
Wydawnictwa Naukowo-Techniczne 2005
- Strona SGI http://www.sgi.com/tech/stl/
- Repozytorium Boost http://www.boost.org/