C++ bez cholesterolu


Poniższy materiał powstał na przełomie kilku ostatnich lat. Tworzyło się to dość spontanicznie na podstawie zbieranych przeze mnie przez pewien czas informacji. Znajdzie się tutaj zatem poza opisem samego C++ oraz jego biblioteki standardowej również kilka innych ciekawostek, w tym elementów biblioteki standardowej Unixa (no, powiedzmy POSIX-a). Do napisania tego zostałem zainspirowany po części chęcią właściwego objaśnienia C++ tym, którzy chcieliby go poznać, a zarazem jest to też po części wyraz mojego sprzeciwu wobec sposobu, w jaki jest on wciąż powszechnie nauczany. W szczególności zaś następujące rzeczy:

  1. dziwne niekiedy sposoby wpajania wiedzy o C++ zazwyczaj przez ludzi, którzy w życiu nie napisali i nie utrzymywali niczego dłuższego, niż 100 linii
  2. mnóstwo niedomówień, również w bardzo dobrych książkach o C++
  3. mnóstwo mitów nt. C++ krążących wśród "znawców" języka C, jak również rozpowszechnianych przez ledwo-co-znawców C++
  4. niewłaściwe (tzn. przesadnie skomplikowane, mało czytelne i wrażliwe na błędy) sposoby programowania utrwalane przez wielu nauczycieli akademickich
  5. wiedza nt. C++ wśród studentów dość wielu polskich uczelni, która jest na poziomie sprzed kilku dobrych lat, w każdym razie sprzed ISO C++

Nie roszczę sobie oczywiście prawa do bycia "edukatorem" C++, ale takoż starałem się, by materiał był w miarę sensownie uporządkowany, jak też żeby łatwo było coś w nim znaleźć. Jedną z rzeczy, jaką starałem się tu zachować, to trzymanie się w materiale związków pomiędzy elementami C++ raczej logicznych, niż wynikających z czasów, w jakich zostały opracowane (a właśnie ten drugi sposób porządkowania najczęściej występuje w książkach).

Parę jeszcze drobnych uwag, przede wszystkim "jak z tego korzystać". Otóż z góry uprzedzam, że zebrany tu materiał nie zastąpi ci książki z uwagi na to, że jest tutaj dość mało przykładów (i to najwyżej oględnych), a zadań to już nie ma w ogóle. Dlatego polecam zaopatrzenie się w jakieś źródło konkretnych zadań do zrobienia. Materiał zebrany tutaj opisuję od strony, od jakiej ja sam go znam, nie zabraknie więc paru dość istotnych rzeczy, które często umykają autorom książek o C++ (ja się na takie rzeczy nadziałem w praktyce lub dowiedziałem się "od kumpla" :). Inną kwestią jest też to, że starałem się materiał wyłożyć "w komplecie", nie można zatem traktować tego jako "krok po kroku". Jeśli cię jedna część znuży, śmiało przechodź do następnej. Choćby dlatego też, że niektóre części materiału mogą się okazać nużące, gdyż mam zwyczaj rozwodzenia się niekiedy nad niektórymi ciekawostkami. :)

Serdecznie dziękuję również wszystkim ludziom, którzy przysyłali swoje uwagi i wnioski, jak również poprawki, dzięki którym strona ta zyskała na jakości. Do zadowalającej jakości jednak na pewno jest jej jeszcze "trochę" co najmniej. Dlatego zapraszam również wszystkich, którzy chcieliby tą stronę wzbogacić o jakieś dodatkowe przykłady i informacje. Wszelkie wnioski i uwagi nt. tej strony proszę kierować do mnie: ethouris@gmail.com. Jesli ktoś potrzebuje, to jest też dostępna wersja spakowana.

  1. Wstęp

    1. Publicystyka (a właściwie advocacy): C mówimy nie!
    2. Krótka historia C++

  2. Właściwości podstawowe C++

    1. Wiadomości wstępne
    2. Preprocesor
    3. Podstawowe jednostki leksykalne
    4. Wyrażenia i operacje
    5. Deklaracje zmiennych i typy danych
    6. Zaawansowane typy danych
    7. Złożone typy danych
    8. Funkcje
    9. Deklaratory
    10. Niekompatybilności z językiem C
    11. Elementy biblioteki standardowej C

  3. Zaawansowane programowanie w C++

    1. Wiadomości podstawowe
    2. Wspomaganie organizacji kodu
    3. Moduły
    4. Przeciążanie
    5. Wyjątki
    6. Operatory RTTI
    7. Właściwości wartości

  4. Programowanie hierarchiczne w C++

    1. Wstęp
    2. Dziedziczenie
    3. Sekcje dostepu
    4. Rodzaje klas

  5. Programowanie obiektowe w C++

    1. Ogólnie o programowaniu obiektowym w C++
    2. Polimorfizm i metody wirtualne
    3. Aspekty programowania obiektowego

  6. Programowanie generyczne w C++

    1. Wstęp
    2. Wzorce
    3. Zastosowania wzorców
  7. Biblioteka standardowa C++

    1. Wstęp
    2. Biblioteki wejścia/wyjścia
    3. Elementy biblioteki STL
    4. Napisy - std::string
    5. Użytki matematyczne
    6. Ustawienia lokalne
  8. Biblioteki dodatkowe C++

    1. Beast
  9. Dodatki

    1. Rzutowanie
    2. Nazewnictwo i terminologia
    3. Smaczki

Powered by:


Copyright (c) 2001-2004 Sektor van Skijlen