Jakie są różnice pomiędzy C i C++ ?

Opublikowano: 2021-05-03
Autor: Radosław Drwal

Jakie są różnice pomiędzy C i C++ ?

Język C i C++ to niezwykle popularne języki programowania z bardzo długą historią. O języku C++ mówi się, że jest funkcjonalnie rozwiniętą wersją języka C. Choć mają to samo źródło, w rzeczywistości jest między nimi wiele różnic.


Historia powstania języków C i C++

Twórcą języka C jest Dennis Ritchie. Ten światowej sławy amerykański informatyk we współpracy z Kenem Thompsonem w 1969 roku zaprojektował interpretowany język B. Bardzo szybko, bo już na początku lat 70. XX wieku, Dennis Ritchie stworzył język C, uzupełniony w stosunku do języka B o elementy strukturalne pozwalające na podział kodu na ułożone hierarchicznie bloki oraz procedury.

C++ został natomiast zaprojektowany przez Bjarne Stroustrupa na początku lat 80. XX wieku. Język ten jest zgodny z językiem C na poziomie kodu źródłowego. Co zatem je od siebie odróżnia?


Różnice między C a C++

Najczęściej wskazywaną różnicą pomiędzy C i C++ jest rozszerzenie C++ o obiektowy mechanizm abstrakcji danych. Ten paradygmat programowania polega na definiowaniu obiektów w połączeniu z wywoływaniem ich metod w taki sposób, aby wzajemnie ze sobą współpracowały. W C++ - poza programowaniem obiektowym - funkcjonują następujące paradygmaty programowania:

  • proceduralnego (polegającego na podziale kodu na fragmenty wykonujące określone operacje);
  • generycznego (umożliwiającego zapis kodu programu bez uprzedniej wiedzy na temat typów danych, na bazie których będzie pracował dany kod);
  • funkcyjnego (polegającego na wartościowaniu funkcji, a nie bezpośrednim jej wykonywaniu);
  • modularnego (opierającego swoje działanie na stosowaniu modułów nadrzędnych w odniesieniu do bloków i procedur budujących program).


Nowością w odniesieniu do języka C było wprowadzenie do C++ silnej statycznej kontroli typów, polegającej na określaniu typów zmiennych już w kodzie źródłowym. Z uwagi na brak opcji programowania obiektowego, w C nie występuje także opcja dziedziczenia, czyli współdzielenia między klasami swoich funkcjonalności. W C brak polimorfizmu, polegającego na możliwości używania wartości, podprogramów i zmiennych w zróżnicowany sposób.

Język C nie zawiera także standardowych bibliotek graficznych. C++ przez lata zyskał ogromną popularność i stale się rozwijał, dzięki czemu posiada zaplecze grafik 2D i 3D. C - w przeciwieństwie do C++ - nie ma funkcji bezpośredniej obsługi programowania wielowątkowego. W C nie można zatem wykonywać dwóch lub większej liczby działań jednocześnie. Ponadto, C nie pozwala na operacje na całych tablicach, natomiast C++ daje programiście tego typu możliwości. Dodatkowo, C pozwala programiście na przydzielanie wskaźników dowolnego typu do wskaźników void. W przypadku C++ możliwości są już ograniczone, a przy wskaźnikach typu void wymagana jest jawna konwersja. W języku C funkcjonują komentarze blokowe oraz liniowe. Do funkcjonalności języka C++ wprowadzono dodatkowo komentarz wieloliniowy.


Współczesne perspektywy rozwoju z C i C++

Języki C i C++, mimo swojej bardzo długiej historii, wciąż cieszą się dużą popularnością wśród programistów. Z powodzeniem są wykorzystywane wszędzie tam, gdzie potrzebna jest bardzo wysoka wydajność przy jednoczesnym niskim zużyciu zasobów.

Język C jest stosowany do zadań niskopoziomowych, w tym między innymi do budowy oprogramowania dla systemów. C wykorzystuje się w programowaniu urządzeń codziennego użytku, takich jak: lodówki, radia, mikrofalówki czy zegarki. Sprawdza się także w przemyśle samochodowym w tworzeniu elementów takich jak automatyczna skrzynia biegów czy klimatyzacja. C++ jest doskonałym rozwiązaniem przy tworzeniu skomplikowanych gier czy zaawansowanych systemów operacyjnych, jak na przykład Windows XP czy Vista.

Pracodawcy co do zasady wymagają od programistów znajomości zarówno języka C, jak i C++. Do znalezienia dobrze płatnej pracy konieczne jest zatem poszerzenie podstawowej znajomości języka C o język C++. Choć ten drugi jest stosunkowo trudny do przyswojenia, warto poświęcić czas na jego naukę. Specjalistów C/C++ jest niewielu, dlatego są bardzo cenieni na rynku pracy i mogą liczyć na wysokie zarobki.


Wyświetleń: 11232
Warto przeczytać:
Przydatne narzędzia dla front-endowca w 2021 roku

Przydatne narzędzia dla front-endowca w 2021 roku

Frontend Developer odpowiada za wszystkie elementy, które są widoczne dla użytkownika po otwarciu strony internetowej. Dobry programista musi znać języki HTML[...]
Epic vs Apple – o co chodzi w tym sporze?

Epic vs Apple – o co chodzi w tym sporze?

Idea konfliktu pomiędzy korporacjami Epic Games oraz Apple skupiła na sobie istotną część uwagi branżowych mediów. Zarzewiem okazała się, bijąca od kilku lat [...]
NVIDIA GeForce RTX 3000 - Nowa generacja kart graficznych

NVIDIA GeForce RTX 3000 - Nowa generacja kart graficznych

NVIDIA GeForce 3000 - Nowa generacja kart graficznychFirma Nvidia przedstawiła najnowszą serię układów graficznych z serii GeForce obsługujących standa[...]
Created by RedAxe ©Work4.dev 2020 - 2024