C++
Z Wikibooks, biblioteki wolnych podręczników.
Witamy w kursie C++ na Wikibooks. Podręcznik ten przybliży ci podstawy C++ - języka programowania, który obecnie ma prawdopodobnie największy wpływ na tworzenie programów komputerowych. Nauczymy cię też programowania obiektowego i ogólnego, wykorzystującego szablony; pokażemy też, jak wykorzystywać standardową bibliotekę STL.
| Jeśli dopiero zaczynasz naukę programowania, koniecznie zacznij od przeczytania podręcznika C, gdyż nie jest to kurs napisany "od zera" - stanowi przedłużenie podręcznika C. Konieczne będzie wyjaśnienie paru spraw, dlatego też przeczytaj najpierw rozdział Jak czytać ten podręcznik! |
Jak widzisz, podręcznik ten nie jest ukończony a prace nad nim trwają. Z chęcią powitamy każdą pomoc - nie musisz pytać się nikogo o pozwolenie na rozwijanie tego kursu, przeczytaj jednak rozdział Dla autorów. Jeśli zamierzasz jedynie korzystać z zawartych tu informacji - nie bój się poprawiać literówek. Miłej lektury!
Uwaga! Objaśnienie spisu treści dla autorów na stronie dyskusji.
| Do zrobienia: Do zintegrowania z resztą lub usunięcia zostały stare rozdziały: Klasy i Start. |
Ważna sprawa: jeśli nie możesz znaleźć czegoś w tym podręczniku, nie dodawaj tego do ToDo, nie dopisuj do spisu treści lecz sprawdź tutaj: C. Jeśli zaś tego i tu nie ma, możesz spokojnie to dopisać.
[edytuj] Spis treści
[edytuj] Wstęp
- O języku C++

Opis i historia - O podręczniku

Autorzy, źródła - Jak czytać ten podręcznik

Ważne informacje o organizacji podręcznika
[edytuj] Część 1: Podstawy języka
- Przestrzenie nazw

Wprowadzenie pojęcia przestrzeni nazw, przestrzeń nazw std, przykładowy program demonstrujący użycie cin, cout i string - Zmienne

Nowe sposoby deklaracji, kontrola typów w C++, nowe sposoby rzutowania - Referencje

Porównanie ze wskaźnikami, zastosowanie do przekazywania argumentów do funkcji - Funkcje inline

Krótki opis funkcji inline - Przeciążanie funkcji

Po co i jak można przeciążać funkcje i jak tego nie da się robić - Zarządzanie pamięcią

Jak w C++ dynamicznie zarządzać pamięcią z użyciem operatorów new i delete
[edytuj] Część 2: Podstawy programowania obiektowego
- Czym jest obiekt

Wprowadzenie pojęcia klasy i obiektu, autorekursja, kontrola dostępu - Konstruktor i destruktor

Konstruktor, konstruktor kopiujący, destruktor - Dziedziczenie

Dziedziczenie prywatne, publiczne i chronione - Składniki statyczne

Atrybuty i metody statyczne
[edytuj] Część 3: Zaawansowane programowanie obiektowe
- Funkcje wirtualne

Funkcje wirtualne i abstrakcyjne, wyjaśnienie polimorfizmu i dynamic_cast - Programowanie orientowane obiektowo
Wyjaśnienie idei programowanie orientowanego obiektowo - Obiekty stałe
Jak tworzyć, możliwe niebezpieczeństwa, słowo kluczowe mutable - Przeciążanie operatorów

Wprowadzenie przykładu klasy z kompletnym przeciążeniem operatorów - Konwersje obiektów
Przeciążenie operatorów konwersji, konstruktor jako sposób konwersji, konstruktory typu explicit - Klasy i typy zagnieżdżone
Tworzenie klas i typów zagnieżdżonych - Dziedziczenie wielokrotne
Dziedziczenie wielokrotne, dziedziczenie wirtualne oraz problemy z nimi związane
[edytuj] Część 4: Zaawansowane konstrukcje językowe
- Obsługa wyjątków

Obsługa wyjątków w C++, funkcje unexpected() i terminate() - Szablony funkcji

Szablony funkcji - Szablony klas

Szablony klas, programowanie uogólnione - Wskaźniki do elementów składowych
Wykorzystnie wskaźników do elementów składowych klas
[edytuj] Dodatek A: Biblioteka STL
- Filozofia STL

Jak skonstruowana jest biblioteka STL - String

Korzystanie z łańcuchów znaków - Vector

Korzystanie z wektorów - List & Slist

Listy jedno- i dwukierunkowe - Set
Korzystanie ze zbiorów - Map
Korzystanie z odwzorowań - Iteratory
Korzystanie z iteratorów - Algorytmy w STL

Jak działają algorytmy w STL - Inne klasy STL
Krótkie omówienie pozostałych klas
[edytuj] Dodatek B
- Przykłady
Przykłady kodu z komentarzem - Ćwiczenia

Zadania kontrolne - Różnice między C a C++

Najważniejsze różnice między C a C++
[edytuj] Pozostałe
- Indeks

Indeks najważniejszych terminów - Zasoby

Książki, linki do innych kursów i dokumentacji - Dla autorów
Wskazówki dla osób pragnących pomóc w rozwoju podręcznika - Wersja do druku
Całość książki na jednej stronie, gotowa do druku - Licencja

Pełny tekst GNU Free Documentation license
[edytuj] Zobacz też
- C
- Zaawansowane CPP (materiały dydaktyczne MIMUW na studia informatyczne II stopnia)
- Materiały koła informatycznego I Liceum Ogólnokształcące w Tarnowie mgr Jerzy Wałaszek - C++, SDL, drzewa ( licencja GNU FDL )

