C++: Różnice pomiędzy wersjami
Zdzichobot (dyskusja | edycje) m poprawa linków |
Zdzichobot (dyskusja | edycje) m poprawa linków |
||
Linia 4: | Linia 4: | ||
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ł ''Wstęp''. |
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ł ''Wstęp''. |
||
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ł [[C++ |
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ł [[C++/Dla autorów|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 [[Dyskusja:C++#Spis treści po połączeniu|stronie dyskusji]]. |
Uwaga! Objaśnienie spisu treści dla autorów na [[Dyskusja:C++#Spis treści po połączeniu|stronie dyskusji]]. |
||
{{TODO|Do zintegrowania z resztą lub usunięcia zostały stare rozdziały: [[Programowanie:C++:Klasy|Klasy]] i [[C++ |
{{TODO|Do zintegrowania z resztą lub usunięcia zostały stare rozdziały: [[Programowanie:C++:Klasy|Klasy]] i [[C++/Start|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 bez narażania się na gniew innych dopisać to. |
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 bez narażania się na gniew innych dopisać to. |
Wersja z 12:38, 2 lis 2006
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.
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ł Wstęp.
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.
W przygotowaniu: 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 bez narażania się na gniew innych dopisać to.
Spis treści
Wstęp
- O języku C++
Opis i historia - O podręczniku
Autorzy, źródła, jak czytać ten podręcznik
Część 1: Podstawowe mechanizmy C++
- Przestrzenie nazw
Wprowadzenie pojęcia przestrzeni nazw, przestrzeń nazw std - 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 - Rvalue-referencje i przenoszenie wartości
Wprowadzony w C++11 mechanizm przenoszenia zawartości obiektów - 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 - Strumienie
Obsługa strumieni wejścia i wyjścia, czytanie i pisanie do plików, obiekty std::istream i std::ostream - C++11 - wybrane nowe elementy standardu
Pętla for po kolekcji, typy wyliczeniowe, typy całkowitoliczbowe
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
Część 3: Zaawansowane programowanie obiektowe
- Funkcje wirtualne
Funkcje wirtualne i abstrakcyjne, wyjaśnienie polimorfizmu i dynamic_cast - Programowanie zorientowane obiektowo
Wyjaśnienie idei programowania zorientowanego 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
Część 4: Zaawansowane konstrukcje językowe
- Obsługa wyjątków
Obsługa wyjątków w C++, funkcje unexpected() i terminate() - Funkcje anonimowe (lambdy)
Funkcje anonimowe wprowadzone w C++11 - Szablony funkcji
Szablony funkcji - Szablony klas
Szablony klas, programowanie uogólnione - Metaprogramowanie
Zaawansowanie użycie szablonów, informacje o typach, SFINAE - Wskaźniki do elementów składowych
Wykorzystanie wskaźników do elementów składowych klas
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ń - Unordered_set
Korzystanie ze zbiorów - Unordered_map
Korzystanie ze zbiorów - Stack
Korzystanie ze stosu - Iteratory
Korzystanie z iteratorów - Algorytmy w STL
Jak działają algorytmy w STL - Inne klasy STL
Krótkie omówienie pozostałych klas
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++
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