1. Wprowadzenie

Materiał wykładu obejmuje podstawowe aspekty standardu języka C++. Pominięte zostały niektóre, bardziej techniczne szczegóły. Nie znajdzie też Czytelnik omówienia takich ważnych elementów programowania jak projektowanie interfejsów graficznych czy programowanie sieciowe – niestety te kwestie nie są na razie objęte standardem (choć w nowym standardzie, z roku 2011, pojawiło się już programowanie wielowątkowe czy wyrażenia regularne). Materiał zawarty w wykładzie powinien jednak stanowić wystarczającą podstawę do dalszej samodzielnej nauki tych i innych aspektów języka.

Wiele elementów języka omówionych jest we fragmentach tekstu poświęconych analizie podanych przykładów; stanowią one zatem bardzo ważną część wykładu i w żadnym przypadku nie powinny być przez Czytelnika pomijane!

C++ jest bardzo bogatym językiem programowania. Niestety jest też raczej językiem trudnym. Jest to, do pewnego stopnia przynajmniej, spowodowane założeniem zgodności C++ ze znacznie starszym i nieobiektowym językiem C. W zasadzie każdy prawidłowy program w C można skompilować za pomocą kompilatora C++ (oczywiście nie odwrotnie!). Od czasu do czasu będę więc wspominał o kompatybilności tych dwóch języków programowania.

Druga trudność, to hybrydowość C++: można stosować w nim zasady programowania obiektowego, ale można też pisać w nim całkiem złożone programy nie wiedząc co to są obiekty, dziedziczenie, hermetyzacja i inne tego rodzaju elementy programowania obiektowego. Warto też zwrócić uwagę, że w nowym standardzie pojawiło się sporo nowych konstrukcji, charakterystycznych dla języków funkcyjnych.

W roku 2011 zatwierdzony został nowy standard – wprowadza on bardzo wiele zmian zarówno w samym języku jak i, może przede wszystkim, w bibliotece standardowej. Zmian jest tak dużo, że omówienie ich wszystkich w tym wykładzie nie jest możliwe; niektóre jednak, które wydają się najważniejsze czy najbardziej użyteczne, będa przynajmniej pokrótce opisane.



Podrozdziały

T.R. Werner, 25 lutego 2017; 22:31