C++ jest to tak zwany język ogólnego przeznaczenia, co świadczy o tym, że jego zakres zastosowań jest bardzo duży. Swoje korzenie ma zdecydowanie w bardzo popularnym języku C. Jednak na jego rozwój wpłynęło wiele innych języków, między innymi: Simula, ML czy Ada.
Pomysłodawcą tego języka był duński informatyk Bjarne Stroustrup. Stworzył on C++ jako rozszerzenie języka C w 1983 roku. Jego nazwę zaproponował jednak Rick Mascitti. Swój debiut C++ przeżył w latach 90. XX wieku kiedy to był jednym z najpopularniejszych języków programowania ogólnego przeznaczenia. Początkowo był dostępny w standardzie kompilatora Cfront, który tłumaczył C++ na C. Później opublikowano kolejny, nieformalny standard ARM (Annotated Reference Manual), stworzony również przez Stroustrupa we współpracy z Margaret Ellis. Natomiast główny standard języka C++ powstał w 1998 roku i częściowo zerwał zgodność z ARM w standardowej bibliotece.
C++ jest językiem wieloparadygmatowym co oznacza możliwość stosowania jednocześnie różnych stylów programowania. Jest to zdecydowanie ważnym elementem dla programisty C++. Głównie wykorzystywany w zastosowaniach z obszaru aplikacji ale także systemów operacyjnych. Pozwala na abstrakcję danych a także stosowanie niewielkiej liczby paradygmatów programowania (obiektowego, proceduralnego czy generycznego). C++ zachowuje kompatybilność z językiem C ale oprócz tego udostępnia jednocześnie obszerny wachlarz nowych mechanizmów. Należą do nich między innymi: programowanie generyczne za pomocą szablonów, dynamiczna kontrola typów a także precyzyjne rzutowanie. Oprócz tego umożliwia programowanie obiektowe z wielokrotnym dziedziczeniem oraz kontrolą dostępu. Dodatkowo jego mechanizmy pozwalają na obsługę sytuacji wyjątkowych jak i również na zarządzanie przestrzeniami nazw. W swojej specyfikacji wyróżnia się na tle innych języków traktowaniem typów zdefiniowanych przez użytkownika na równi z typami wbudowanymi. Warto zaznaczyć, że C++ charakteryzuje się bardzo wysoką wydajnością kodu wynikowego czy łatwością tworzenia i jednoczesnego korzystania z bibliotek. Jest niezależny pod względem platformy sprzętowej czy systemowej a także umożliwia bezpośredni dostęp do zasobów sprzętowych oraz funkcji systemowych.
Programiści chwalą sobie programowanie w C++ głównie za jego elastyczność, duże możliwości a także za lepszą ochronę przed popełnianiem błędów. Kompilator ostrzeże nas za każdym razem kiedy będziemy chcieli użyć czegoś w sposób niewłaściwy. Mimo że niektórzy zwolennicy języka C uważają, że nowe mechanizmy obiektowe C++ spowalniają działanie programów, często zdarza się jednak tak, że to właśnie programy napisane w C++ okazują się działać szybciej i wydajniej. Twórcy języka głównie kierowali się tym, by dodatkowe możliwości nie wymagały nazbyt dużego zużycia pamięci czy także mocy procesora, mając na względzie programy pisane w języku C. Dlatego też język ten jest równie częstym wyborem programistów.
Przykładowy kod programisty C++
C++ Przykład #1
struct node {
int x;
node *next;
};
int main()
{
node *root;
node *inspector;
root = new node;
root->next = 0;
root->x = 18;
inspector = root;
if ( inspector != 0 ) {
while ( inspector->next != 0)
inspector = inspector->next;
}
inspector->next = new node;
inspector = inspector->next;
inspector->next = 0;
inspector->x = 65;
}
Przykładowe pytania na stanowisko programista C++
- Pole zadeklarowane z atrybutem static:
- może być modyfikowane tylko przez metody z tej samej klasy
- jest wspólne dla wszystkich obiektów danej klasy
- jest stałą
- może być modyfikowane tylko przez funkcje zadeklarowane z atrybutem friend
- Która z instrukcji może być umieszczona w konstruktorze?
- return true;
- żadna z nich
- return void;
- Która funkcja służy do sprawdzania czy udało się otworzyć plik?
- ifOpen()
- good()
- done()
- check()
- Obiekt w języku C++ jest:
- zespołem zmiennych wykorzystywanych wspólnie do określonego celu
- dowolną zmienną lub stałą
- zmienną (lub stałą) o typie danych, który jest klasą
- zespołem zmiennych i funkcji wykorzystywanych wspólnie do określonego celu