C++ to język programowania o bardzo ogólnym zakresie potencjalnych zastosowań, język wieloparadygmatowy – proceduralny, obiektowy i generyczny zarazem. Charakterystyczne cechy środowiska C++ to przede wszystkim…

C++ to język programowania o bardzo ogólnym zakresie potencjalnych zastosowań, język wieloparadygmatowy – proceduralny, obiektowy i generyczny zarazem. Charakterystyczne cechy środowiska C++ to przede wszystkim wysoka wydajność kodu, bezpośredni dostęp do zasobów sprzętowych i funkcji systemowych, relatywna prostota tworzenia bibliotek i zarządzania nimi, a także pełna niezależność od platformy sprzętowej i systemowej co potęguje uniwersalność zastosowań języka C++. Za twórcę C++ uznaje się Bjarne Stroustrupa, profesora Texas A&M University, laureata licznych nagród i autora wielu publikacji. Jego historia sięga końca lat 70. XX wieku – pierwsza wersja C++ powstała bowiem w 1979 roku. Jak sugeruje sama nazwa C++ jest oparty na języku C i poszerzony o obiektowe mechanizmy abstrakcji danych oraz silną kontrolę typów. Ideą przewodnią pierwszych wersji C++ było rozszerzenie funkcjonalności języka C o programowanie obiektowe, a więc znaczne ułatwienie dla programistów i skrócenie czasu potrzebnego na opracowanie funkcjonalnej aplikacji. Symboliczne znacznie nazwy „C++” to unowocześniony, wzbogacony o dodatkowe możliwości język C. C++ zachowuje pełną zgodność z językiem C na poziomie kodu źródłowego, co było i jest głównym założeniem wszystkich nowelizacji C. C++ zdobył ogromną popularność na całym świecie, będąc powszechnie wykorzystywanym na wszystkich kontynentach – liczbę programistów specjalizujących się w języku C++ szacuje się na około 3 miliony.

 

W tym miejscu postaramy się w telegraficznym skrócie omówić podstawowe cechy języka C++, skupiając się na najważniejszych spośród nich. Po pierwsze C++ jest językiem wieloparadygmatowym, co w praktyce wiąże się z możliwością stosowania różnorodnych stylów programowania w jego obrębie – możemy programować na poziomie asemblera, stosować programowanie proceduralne, obiektowe czy generyczne. Po drugie C++ posiada dwojaką formę kontroli typów – dynamiczną i statyczną. Po trzecie C++ daje możliwość bezpośredniego zarządzania wolną pamięcią. Jednym z głównych założeń projektantów języka C++ była jego maksymalna możliwa szybkość w odniesieniu do języka C, będącego jego bezpośrednią podstawą – w praktyce każdy program napisany w C++ nie powinien być wolniejszy lub mniej stabilny niż jego odpowiednik napisany w języku C, co więcej w wielu przypadkach aplikacje te okazują się znacznie szybsze, dzięki możliwości stosowania algorytmów generycznych, które oferuje C++. Znaczna ilość programów stworzonych w języku C++ wymusza stosowanie niestandardowych bibliotek – wiele spośród nich jest dostępnych w internecie zarówno jako produkty komercyjne jak i tworzone w ramach FLOSS (wolnego i otwartego oprogramowania). Programiści C++ mogą także korzystać z bibliotek języka C. Co ważne sam język C++ nie jest własnością żadnej osoby fizycznej lub prawnej, dotąd nie jest i nie był w posiadaniu żadnej firmy lub korporacji.

 

Najważniejsze modyfikacje względem języka C to przede wszystkim wprowadzenie możliwości programowania obiektowego; mechanizmów enkaspulacji, klas i obiektów, dziedziczenia (także dziedziczenia wielobazowego), konstruktorów i destruktorów, dynamicznej kontroli typów RTTI, metod i pól statycznych, etc. Rozbudowanie funkcji o system wzorców funkcji i klas, oraz dodanie biblioteki STL miało na celu uproszczenie programowania generycznego, sporym ułatwieniem w efektywnym wykorzystywaniu C++ jest także wprowadzenie obsługi wyjątków. Do pozostałych zmian należy zaliczyć regułę traktowania definicji i obiektów jak tradycyjnych instrukcji, wprowadzenie referencji, przeciążenia funkcji i operatorów, funkcji rozwijalnych, operatorów precyzyjnego rzutowania i wielu innych nowych względem języka ANSI C z 1989 roku funkcji.

Dodaj komentarz