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.

Prace nad podręcznikiem trwają - nie jest on ukończony. Z chęcią powitamy każdą pomoc - nie musisz pytać się nikogo o pozwolenie na rozwijanie tego kursu, przeczytaj jednak rozdział Dla autorów oraz ewentualne strony dyskusji. Jeśli zamierzasz jedynie korzystać z zawartych tu informacji - nie bój się poprawiać literówek. Miłej lektury!

Podręcznik języka C.
Podstawy języka C, jednocześnie wstęp do niniejszej książki

Spis treści

edytuj

Wstęp

edytuj
  1. O języku C++  
    Opis i historia
  2. O podręczniku  
    Autorzy, źródła, jak czytać ten podręcznik

Część 1: Podstawowe mechanizmy C++

edytuj
  1. Przestrzenie nazw  
    Wprowadzenie pojęcia przestrzeni nazw, przestrzeń nazw std
  2. Zmienne  
    Nowe sposoby deklaracji, kontrola typów w C++, nowe sposoby rzutowania
  3. Referencje  
    Porównanie ze wskaźnikami, zastosowanie do przekazywania argumentów do funkcji
  4. Rvalue-referencje i przenoszenie wartości  
    Wprowadzony w C++11 mechanizm przenoszenia zawartości obiektów
  5. Funkcje inline  
    Krótki opis funkcji inline
  6. Przeciążanie funkcji  
    Po co i jak można przeciążać funkcje i jak tego nie da się robić
  7. Zarządzanie pamięcią  
    Jak w C++ dynamicznie zarządzać pamięcią z użyciem operatorów new i delete
  8. Strumienie
    Obsługa strumieni wejścia i wyjścia, czytanie i pisanie do plików, obiekty std::istream i std::ostream
  9. C++11 - wybrane nowe elementy standardu
    Pętla for po kolekcji, typy wyliczeniowe, typy całkowitoliczbowe

Część 2: Podstawy programowania obiektowego

edytuj
  1. Czym jest obiekt  
    Wprowadzenie pojęcia klasy i obiektu, autorekursja, kontrola dostępu
  2. Konstruktor i destruktor  
    Konstruktor, konstruktor kopiujący, destruktor
  3. Dziedziczenie  
    Dziedziczenie prywatne, publiczne i chronione
  4. Składniki statyczne  
    Atrybuty i metody statyczne

Część 3: Zaawansowane programowanie obiektowe

edytuj
  1. Funkcje wirtualne  
    Funkcje wirtualne i abstrakcyjne, wyjaśnienie polimorfizmu i dynamic_cast
  2. Programowanie zorientowane obiektowo
    Wyjaśnienie idei programowania zorientowanego obiektowo
  3. Obiekty stałe
    Jak tworzyć, możliwe niebezpieczeństwa, słowo kluczowe mutable
  4. Przeciążanie operatorów  
    Wprowadzenie przykładu klasy z kompletnym przeciążeniem operatorów
  5. Konwersje obiektów
    Przeciążenie operatorów konwersji, konstruktor jako sposób konwersji, konstruktory typu explicit
  6. Klasy i typy zagnieżdżone
    Tworzenie klas i typów zagnieżdżonych
  7. Dziedziczenie wielokrotne
    Dziedziczenie wielokrotne, dziedziczenie wirtualne oraz problemy z nimi związane

Część 4: Zaawansowane konstrukcje językowe

edytuj
  1. Obsługa wyjątków  
    Obsługa wyjątków w C++, funkcje unexpected() i terminate()
  2. Funkcje anonimowe (lambdy)  
    Funkcje anonimowe wprowadzone w C++11
  3. Szablony funkcji  
    Szablony funkcji
  4. Szablony klas  
    Szablony klas, programowanie uogólnione
  5. Metaprogramowanie  
    Zaawansowanie użycie szablonów, informacje o typach, SFINAE
  6. Wskaźniki do elementów składowych
    Wykorzystanie wskaźników do elementów składowych klas

Dodatek A: Biblioteka STL

edytuj
  1. Filozofia STL  
    Jak skonstruowana jest biblioteka STL
  2. String  
    Korzystanie z łańcuchów znaków
  3. Vector  
    Korzystanie z wektorów
  4. List & Slist  
    Listy jedno- i dwukierunkowe
  5. Set
    Korzystanie ze zbiorów
  6. Map
    Korzystanie z odwzorowań
  7. Unordered_set
    Korzystanie ze zbiorów
  8. Unordered_map
    Korzystanie ze zbiorów
  9. Stack
    Korzystanie ze stosu
  10. Iteratory
    Korzystanie z iteratorów
  11. Algorytmy w STL  
    Jak działają algorytmy w STL
  12. Inne klasy STL
    Krótkie omówienie pozostałych klas

Dodatek B

edytuj
  1. Przykłady
    Przykłady kodu z komentarzem
  2. Ćwiczenia  
    Zadania kontrolne
  3. Różnice między C a C++  
    Najważniejsze różnice między C a C++

Pozostałe

edytuj
  1. Indeks  
    Indeks najważniejszych terminów
  2. Zasoby  
    Książki, linki do innych kursów i dokumentacji
  3. Dla autorów
    Wskazówki dla osób pragnących pomóc w rozwoju podręcznika
  4. Wersja do druku     (edytuj)
    Całość książki na jednej stronie, gotowa do druku
  5. Licencja  
    Pełny tekst GNU Free Documentation license

Zobacz też

edytuj