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艅: 15
Warto przeczyta膰:
TOP 10 najlepiej p艂atnych zawod贸w w IT w 2020

TOP 10 najlepiej p艂atnych zawod贸w w IT w 2020

Zastanawiasz si臋, jaki jest najlepiej p艂atny zaw贸d w bran偶y informatycznej w 2020 roku? Jako portal bran偶owy z og艂oszeniami o prac臋, mamy bardzo dobry[...]
W jaki spos贸b Java podbi艂a rynek programowania?

W jaki spos贸b Java podbi艂a rynek programowania?

Programistyczny j臋zyk Java jest najcz臋stszym wyborem, je艣li chodzi o kreacj臋 rozmaitych program贸w czy aplikacji. Jego schematy wykorzystywane s膮 jako[...]
W jaki spos贸b dzia艂a j臋zyk C++?

W jaki spos贸b dzia艂a j臋zyk C++?

Dla jednych relikt przesz艂o艣ci, dla drugich - esencja programowania. J臋zyk C++ ma tyle samo przeciwnik贸w co zwolennik贸w. Jak zatem dzia艂a C++ i z czego[...]