C++

Praca programista C++
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++


  1. Pole zadeklarowane z atrybutem static:
    1. może być modyfikowane tylko przez metody z tej samej klasy
    2. jest wspólne dla wszystkich obiektów danej klasy
    3. jest stałą
    4. może być modyfikowane tylko przez funkcje zadeklarowane z atrybutem friend
  2. Która z instrukcji może być umieszczona w konstruktorze?
    1. return true;
    2. żadna z nich
    3. return void;
  3. Która funkcja służy do sprawdzania czy udało się otworzyć plik?
    1. ifOpen()
    2. good()
    3. done()
    4. check()
  4. Obiekt w języku C++ jest:
    1. zespołem zmiennych wykorzystywanych wspólnie do określonego celu
    2. dowolną zmienną lub stałą
    3. zmienną (lub stałą) o typie danych, który jest klasą
    4. zespołem zmiennych i funkcji wykorzystywanych wspólnie do określonego celu