Zaawansowane CPP: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 72: Linia 72:
 
# [[Zaawansowane CPP/Wykład 10: Inteligentne wskaźniki|Inteligentne wskaźniki]] ([[Zaawansowane CPP/Ćwiczenia 10: Inteligentne wskaźniki|ćwiczenia]])
 
# [[Zaawansowane CPP/Wykład 10: Inteligentne wskaźniki|Inteligentne wskaźniki]] ([[Zaawansowane CPP/Ćwiczenia 10: Inteligentne wskaźniki|ćwiczenia]])
 
# [[Zaawansowane CPP/Wykład 11: Funktory|Funktory]] ([[Zaawansowane CPP/Ćwiczenia 11: Funktory|ćwiczenia]])
 
# [[Zaawansowane CPP/Wykład 11: Funktory|Funktory]] ([[Zaawansowane CPP/Ćwiczenia 11: Funktory|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 12: Zarządzanie pamięcią|Zarządzanie pamięcią]] ([[Zaawansowane CPP/Ćwiczenia 13]]: Zarządzanie pamięcią|ćwiczenia]])
+
# [[Zaawansowane CPP/Wykład 12: Zarządzanie pamięcią|Zarządzanie pamięcią]] ([[Zaawansowane CPP/Ćwiczenia 13: Zarządzanie pamięcią|ćwiczenia]])
 
# [[Zaawansowane CPP/Wykład 13: Wyjątki|Wyjątki]] ([[Zaawansowane CPP/Ćwiczenia 14: Wyjątki|ćwiczenia]])
 
# [[Zaawansowane CPP/Wykład 13: Wyjątki|Wyjątki]] ([[Zaawansowane CPP/Ćwiczenia 14: Wyjątki|ćwiczenia]])
 
# [[Zaawansowane CPP/Wykład 14: Używanie funktorów|Używanie funktorów]] ([[Zaawansowane CPP/Ćwiczenia 12: Używanie funktorów|ćwiczenia]])
 
# [[Zaawansowane CPP/Wykład 14: Używanie funktorów|Używanie funktorów]] ([[Zaawansowane CPP/Ćwiczenia 12: Używanie funktorów|ć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]])

Wersja z 13:48, 1 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

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ń
    • zastosowanie szablonów do implementacji podstawowych wzorców obiektowych
  • 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
    • kontrola wersji (Subversion)
    • testowanie (CPPUnit)

Literatura

  • Alexandrescu "Modern C++ Design, Generic Programming and Design Patterns Applied", 2001 Addison-Wesley.
  • B. Meyer, "Object Oriented Software Construction"
  • D. Vandervoorde, N. Josuttis "C++ Szablony, Vademecum profesjonalisty", Helion S.A 2003.
  • Alexandrescu "Nowoczesne projektowanie".
  • Stroustroup "Jezyk C++".
  • N. Josuttis "STL".
  • B. Eckel, Ch. Allinson, "Thinking in C++" Tom 2 2004 Helion.
  • S. Meyers,"C++, 50 efektywnych sposobów na udoskonalenie Twoich programów", 2003 Helion.
  • S. Meyers, "More effective C++"
  • S. Meyers, "STL w praktyce. 50 sposobów efektywnego wykorzystania", 2004 Helion.
  • Strona SGI http://www.sgi.com/tech/stl/
  • BOOST
  • CRTP
  • "patterns"

(tymczasowe) Uwagi dotyczące latex2mediawiki

Poniższe makra powodują, że kod C++ jest poprawnie tłumaczony:

\newcommand{\beginlstlisting}{
 <nowiki>\NOWIKI\EATWS }
\newcommand{\beginlstlisting}[1]{
 <nowiki>\NOWIKI\EATWS }
\newcommand{\endlstlisting}{</nowiki>\NOWIKI

\EATWS }
\newcommand{\cd}[1]{<code><nowiki>\NOWIKI #1</nowiki>\NOWIKI</code>}

Moduły

  1. Szablony I (ćwiczenia)
  2. Programowanie uogólnione (ćwiczenia)
  3. Szablony II (ćwiczenia)
  4. Testowanie (ćwiczenia)
  5. Klasy cech (ćwiczenia)
  6. Funkcje typów i inne sztuczki (ćwiczenia)
  7. Klasy wytycznych (ćwiczenia)
  8. Metaprogramowanie (ćwiczenia)
  9. Szablony wyrażeń (ćwiczenia)
  10. Inteligentne wskaźniki (ćwiczenia)
  11. Funktory (ćwiczenia)
  12. Zarządzanie pamięcią (ćwiczenia)
  13. Wyjątki (ćwiczenia)
  14. Używanie funktorów (ćwiczenia)
  15. Wyjątkowo odporny kod (ćwiczenia)