Zaawansowane CPP: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 35: | Linia 35: | ||
=== Literatura === | === Literatura === | ||
*D. Vandervoorde, N. Josuttis ''"C++ Szablony, Vademecum profesjonalisty"'', Helion S.A 2003. | *D. Vandervoorde, N. Josuttis ''"C++ Szablony, Vademecum profesjonalisty"'', Helion S.A 2003. | ||
*Alexandrescu ''" | *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. | |||
*B. Eckel, Ch. Allinson, ''"Thinking in C++"'' | |||
== (tymczasowe) Uwagi dotyczące latex2mediawiki == | == (tymczasowe) Uwagi dotyczące latex2mediawiki == | ||
Linia 83: | Linia 76: | ||
# [[Zaawansowane CPP/Wykład 14: Zarządzanie pamięcią|Zarządzanie pamięcią]] ([[Zaawansowane CPP/Ćwiczenia 14: Zarządzanie pamięcią|ćwiczenia]]) | # [[Zaawansowane CPP/Wykład 14: Zarządzanie pamięcią|Zarządzanie pamięcią]] ([[Zaawansowane CPP/Ćwiczenia 14: Zarządzanie pamięcią|ćwiczenia]]) | ||
# [[Zaawansowane CPP/Wykład 15: Wyjątkowo odporny kod|Wyjątkowo odporny kod]] ([[Zaawansowane CPP/Ćwiczenia 15: Wyjątkowo odporny kod|ćwiczenia]]) | # [[Zaawansowane CPP/Wykład 15: Wyjątkowo odporny kod|Wyjątkowo odporny kod]] ([[Zaawansowane CPP/Ćwiczenia 15: 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/ |
Wersja z 10:58, 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
- metaprogramowanie, szablony wyrażeń
- Inteligentne wskaźniki
- Funktory
- programowanie generyczne
- Wyjątki.
- bezpieczna obsługa wyjątków
- wyjątki a kontenery (STL)
- 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/