Różnica między C i C ++ za pomocą przykładów | Języki programowania

Kluczowa różnica: C i C ++ to dwa różne języki programowania komputerowego. C ++ został opracowany z języka programowania C; jednak mają one zupełnie inny charakter. Najbardziej oczywistą różnicą jest to, że C jest językiem opartym na procedurze, podczas gdy C ++ obsługuje zarówno programowanie proceduralne, jak i obiektowe, dlatego jest często nazywany językiem hybrydowym.

C i C ++ to dwa różne języki programowania komputerowego. C został pierwotnie opracowany przez Dennisa Ritchiego w AT & T Bell Labs w latach 1969-1973. C ++ to kolejny język programowania ogólnego przeznaczenia. Został opracowany z oryginalnego języka programowania C. Został opracowany przez Bjarne Stroustrup w Bell Labs od 1979 roku. C ++ był pierwotnie nazwany C z klasami, ponieważ był oparty na C. Został przemianowany na C ++ w 1983 roku.

C jest jednym z najstarszych obecnie używanych języków programowania i jest jednym z najczęściej używanych języków programowania. Jest ciągle używany w aplikacjach, które wcześniej były kodowane w języku asemblerowym. Obejmuje to system operacyjny komputera UNIX. C ma również bezpośredni lub pośredni wpływ na wiele późniejszych języków programowania, takich jak C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python i C powłoki Unix. Pomimo tych wszystkich nowych języków C nadal pozostaje popularnym językiem programowania.

C ++ początkowo było rozwinięciem C. Zostało zaprojektowane tak, aby było kompatybilne ze źródłem i łączem z C. Dodało jednak klasy, funkcje wirtualne, przeciążenie operatorów, wielokrotne dziedziczenie, szablony, obsługę wyjątków itp. W końcu opracowało wystarczająco, aby można go było uznać za język programowania. Pierwotnie został ratyfikowany w 1998 roku jako język programowania z certyfikatem ISO / IEC 14882: 1998. Dzisiaj C ++ jest obecnie powszechnie używane do projektowania sprzętu.

C jest językiem programowania ogólnego przeznaczenia, który używa średnika (;) jako terminatora instrukcji, a także nawiasów klamrowych ({}) do grupowania bloków instrukcji. Posiada funkcje programowania strukturalnego, a jego konstrukcja zapewnia konstrukcje, które mogą efektywnie odwzorowywać typowe instrukcje maszynowe. Pozwala także na leksykalny zakres zmienny i rekurencję oraz ma system typu statycznego, który zapobiega wielu niezamierzonym operacjom.

Jednak w porównaniu z C ++, C ma wiele ograniczeń. Ponieważ C nie jest zorientowany obiektowo, nie obsługuje koncepcji OOPS. C nie obsługuje przeciążania funkcji i operatora. Nie może korzystać z funkcji wewnątrz struktur. Nie obsługuje funkcji wirtualnych i zmiennych referencyjnych ani obsługi wyjątków. Nie obsługuje również zmiennych referencyjnych. Ponadto C również nie hermetyzuje ani nie zabezpiecza danych. Dla porównania C ++ obsługuje wszystkie te funkcje.

Co więcej, C nie obsługuje funkcji NAMESPACE, podczas gdy C ++ to robi. Przestrzeń nazw jest definitywnym regionem, który pozwala grupować identyfikatory (nazwy typów, funkcji, zmiennych itp.). Przestrzenie nazw mogą być następnie używane do organizowania kodu w grupy logiczne i zapobiegania kolizjom nazw. Jest to szczególnie przydatne, gdy baza kodu zawiera wiele bibliotek, co idealnie czyni kod podatnym na kolizje nazw.

Oba języki różnią się także sposobem działania pamięci adresowej, wprowadzaniem danych wejściowych i programowaniem GUI. Na przykład C używa funkcji calloc (), malloc () i free () do alokacji i de alokacji pamięci, podczas gdy C ++ wykorzystuje nowe i usuwa. C używa scanf () i printf () dla wejścia i wyjścia, podczas gdy C ++ używa operatorów cin >> i cout <<. C obsługuje narzędzie GTK do programowania GUI, natomiast C ++ obsługuje narzędzia Qt do programowania GUI. Kolejną różnicą jest to, że C wymaga od użytkownika zadeklarowania wszystkich zmiennych u góry programu, podczas gdy w C ++ zmienne mogą być zadeklarowane w dowolnym miejscu w programie.

Dodatkowo, C ++ jest zwykle uważany za łatwiejszy do nauczenia, ponieważ jest bardziej przyjazny dla użytkownika niż C. C ++ ma również wiele dodatkowych funkcji, które ułatwiają kodowanie, szczególnie dla kogoś, kto jest nowy w strukturze C. Jednak wielu twierdzi, że ma to znaczenie. Te dwa języki różnią się tak bardzo, że w rzeczywistości mogą być dwoma różnymi językami niezależnymi od siebie. Jedną z rzeczy, o których należy pamiętać, jest to, że C jest znacznie bardziej uporządkowany niż C ++, podczas gdy C ++ ma być bardziej ekspresyjny i abstrakcyjny niż C.

Porównanie między C i C ++:

do

C ++

Założony

Opracowany przez Dennisa Ritchiego w AT & T Bell Labs w latach 1969-1973.

Opracowany przez Bjarne Stroustrup w Bell Labs od 1979 roku.

Kod źródłowy

Kod źródłowy programu w wolnym formacie

Pierwotnie opracowany z języka programowania C.

Język

Procedura Język zorientowany

Wspiera zarówno paradygmaty programowania proceduralnego, jak i obiektowego; dlatego jest często nazywany językiem hybrydowym.

Podejście

Podąża za podejściem od góry do dołu.

Podejście oddolne.

Związek

C jest podzbiorem C ++. Nie może uruchomić kodu C ++.

C ++ jest nadzbiorem C. C ++ może uruchomić większość kodu C, podczas gdy C nie może uruchomić kodu C ++.

Napęd

Język funkcyjny

Obiektowy język

Skupiać

Skupia się na metodzie lub procesie, a nie na danych.

Skupia się na danych zamiast na metodzie lub procedurze.

Cegiełki

Funkcje

Obiekty

Słowa kluczowe

Zawiera 32 słowa kluczowe

Zawiera 52 słowa kluczowe

Koncepcje OOPS

Ponieważ język "C" jest językiem zorientowanym na procedury, nie obsługuje on koncepcji OOPS, takich jak klasa, obiekt, dziedziczenie, polimorfizm, ukrywanie danych itp.

Jako język zorientowany obiektowo, C ++ obsługuje klasę, obiekt, ukrywanie danych, polimorfizm, dziedziczenie, abstrakcje itp.

Funkcje

  • Nie obsługuje przeciążania funkcji i operatora.
  • Nie można używać funkcji wewnątrz struktur
  • Nie obsługuje funkcji wirtualnych i zmiennych referencyjnych
  • Nie obsługuje obsługi wyjątków
  • nie obsługuje zmiennych referencyjnych
  • nie ma funkcji przestrzeni nazw
  • można wywołać funkcję main () poprzez inne funkcje
  • Obsługuje przeciążanie funkcji i operatora.
  • Potrafi korzystać z funkcji wewnątrz struktur
  • Obsługuje funkcje wirtualne i zmienne referencyjne.
  • Obsługuje obsługę wyjątków za pomocą bloku try i catch. Wyjątki są stosowane w przypadku "twardych" błędów, które sprawiają, że kod jest niepoprawny.
  • obsługuje zmienne referencyjne
  • wykorzystuje funkcję NAMESPACE, która pozwala uniknąć kolizji nazw.
  • nie można wywołać funkcji main () przez inne funkcje.

Funkcje pamięci

Używa funkcji calloc (), malloc () i free () do alokowania i de alokacji pamięci.

Używa operatorów nowych i usuwa w tym samym celu.

Kapsułkowanie

Nie wspiera. Dane i funkcje są osobnymi i wolnymi podmiotami.

Obsługuje enkapsulację. Dane i funkcje są enkapsulowane razem w postaci obiektu. Klasa obiektów zapewnia projekt struktury obiektu.

Ukrywanie informacji

C nie obsługuje ukrywania informacji. Tutaj dane są wolnymi jednostkami i mogą być manipulowane przez zewnętrzny kod.

Enkapsulacja ukrywa dane, aby zapewnić, że struktury danych i operatory są używane zgodnie z przeznaczeniem.

Dane

Obsługuje wbudowane i prymitywne typy danych.

Dane nie są zabezpieczone z powodu braku obiektu

Obsługuje typy danych wbudowanych i definiowanych przez użytkownika.

Dane są zabezpieczone (ukryte) w C ++

Poziom

Język niskiego poziomu

Język średniego poziomu

Wejście wyjście

Język "C" używa scanf () i printf () dla wejścia i wyjścia.

Język "C ++" używa operatorów cin >> i cout << dla wejścia i wyjścia.

Deklaracja zmiennych

C wymaga deklaracji wszystkich zmiennych u góry programu.

W C ++ zmienne mogą być zadeklarowane w dowolnym miejscu w programie przed użyciem.

Wielokrotna deklaracja

Dozwolone jest wiele deklaracji zmiennych globalnych.

Wielokrotne Deklaracja zmiennych globalnych jest niedozwolona.

Mapowanie

Mapowanie danych i funkcji jest trudne i skomplikowane.

Odwzorowanie między danymi a funkcją może być używane za pomocą "obiektów"

Programowanie GUI

C obsługuje narzędzie GTK do programowania GUI

C ++ obsługuje narzędzia Qt do programowania GUI

Dziedzictwo

Dziedziczenie nie jest możliwe w C

Dziedziczenie jest możliwe w C ++

Rozszerzenie pliku

Ma rozszerzenie pliku .c

Ma rozszerzenie pliku .cpp

Domyślny plik nagłówkowy

Domyślnym plikiem nagłówkowym używanym w języku C jest stdio.h

Domyślny plik nagłówkowy używany w C ++ to iosteam.h

Niektóre przykłady różnicy między C i C ++:

Przykłady

do

C ++

Deklaracja zmiennej

Tylko u góry:

int i;

dla (i = 10; i <10; i ++)

Gdziekolwiek w programie:

dla (int i = 10; i <10; i ++)

Przydzielanie pamięci

Malloc:

int * x = malloc (sizeof (int));

int * x_array = malloc (sizeof (int) * 10);

Nowy:

int * x = nowy int;

int * x_array = new int [10];

Zwalnianie pamięci

Darmowy:

bezpłatny (x);

wolny (x_array);

Kasować:

usuń x;

usuń [] x_array;

Zalecane

Podobne Artykuły

  • popularne porównania: Różnica między koreańskim a japońskim kształtem twarzy

    Różnica między koreańskim a japońskim kształtem twarzy

    Kluczowa różnica: Faktyczna widoczna różnica między różnymi azjatyckimi grupami etnicznymi jest niewielka, jeśli w ogóle. Ogólnie mówi się, że Japończycy mają dłuższą lub owalną twarz z szerszymi lub większymi oczami i bardziej wyrazistym nosem z bardziej wyrazistym mostem. Podczas gdy Koreańczycy mają podobno płaskie twarze z większymi i prostszymi kośćmi policzkowymi z mniejszymi oczami. Różnice te mogą się jedn
  • popularne porównania: Różnica między śmieciami a koszami

    Różnica między śmieciami a koszami

    Kluczowa różnica: śmieci i śmieci odnoszą się do odpadów. Jednak śmieci jako słowo jest na ogół związane z produktów ubocznych, które mogą być rozkładane przez mikroorganizmy i śmieci jest na ogół związane z innymi rodzajami odpadów, które nie rozkładają się lub rozpadu. Śmieci i śmieci to dwa słowa, które są często używane zamiennie, a zatem wydaje się, że nie ma rozróżnienia między tymi słowami. W różnych słownikach są one zdefiniow
  • popularne porównania: Różnica między Redneck i Hillbilly

    Różnica między Redneck i Hillbilly

    Kluczowa różnica: Redneck jest lekceważącym lub obraźliwym terminem dla członka białej wiejskiej klasy pracującej, szczególnie w południowych Stanach Zjednoczonych. Hillbilly to także slangowe słowo dla osoby, która nie ma klasy, która mieszka w odosobnionym regionie gór. Rednecks i hillbillies są często wiązane w tej samej szerokiej palmie typograficznej, ale mają różną naturę i styl życia. Są to dwie całkowicie
  • popularne porównania: Różnica między teistą a ateistą

    Różnica między teistą a ateistą

    Kluczowa różnica: Theist oznacza osobę, która wierzy w istnienie Boga. Teista wierzy, że Bóg jest stwórcą i suwerennym władcą wszechświata. Ateista to ten, kto zaprzecza istnieniu jakiegokolwiek Boga lub bogów. Słowo Theist przetrwało od greckiego theos "boga" (Thea) + -ist. Teista wierzy w istnienie Boga, który można określić jako stwórcę i gubernatora całego wszechświata. Definicja boga różni
  • popularne porównania: Różnica między Loose i Lose

    Różnica między Loose i Lose

    Kluczowa różnica: "Luźne" może być używane jako przymiotnik lub czasownik. Odnosi się do czegoś, co nie jest właściwe lub bezpiecznie połączone. "Lose" to czasownik oznaczający porażkę lub coś niewłaściwego. "Loose" i "lose" to dwa różne terminy, z dwoma różnymi znaczeniami, które powodują wiele zamieszania podczas używania. Ponieważ różnica w piso
  • popularne porównania: Różnica między FAT32 i NTFS

    Różnica między FAT32 i NTFS

    Kluczowa różnica: FAT32 i NTFS to systemy plików i standardy dyskowe używane do partycjonowania i formatowania dysków twardych. W porównaniu FAT32 jest starszą i prostszą wersją systemu NTFS, która jest nowa i dobrze funkcjonującą wersją systemu plików. FAT32 jest wersją tabeli alokacji plików, która jest dostępna w systemach operacyjnych Windows 95 OSR 2 i Windows 98. Jest to powszech
  • popularne porównania: Różnica między wieżą a drapaczem chmur

    Różnica między wieżą a drapaczem chmur

    Kluczowa różnica: zgodnie z definicją techniczną, wieże są strukturami, które są zwykle wyższe niż są szerokie. Wieże są zwykle odróżniane od masztów przez brak drutów kolczastych i są zwykle budowane w celu wykorzystania ich wysokości. Skyscraper to termin używany do opisania naprawdę wysokiego budynku, który składa się z wielu opowieści. Są one zwykle zaprojekt
  • popularne porównania: Różnica między przedszkolem a przedszkolem

    Różnica między przedszkolem a przedszkolem

    Kluczowa różnica: Przedszkole odnosi się do szkoły przygotowawczej, która została zaprojektowana dla dzieci w wieku ustawowym. Zasadniczo obejmuje dzieci w wieku od dwóch do pięciu lat. Przedszkole to termin, który jest zazwyczaj używany w kontekście czasu przed szkoleniem podstawowym dzieci. Przedszko
  • popularne porównania: Różnica między Tequila Gold i Silver

    Różnica między Tequila Gold i Silver

    Kluczowa różnica: Tequila to destylowany spirytus, który składa się z niebieskiej agawy. Tequile srebrne są butelkowane natychmiast po wyprodukowaniu lub po starzeniu w beczkach ze stali nierdzewnej lub dębu neutralnego przez okres do 2 miesięcy. Tequila złota to w zasadzie tequila, która uzyskała złoty kolor dzięki dodaniu barwnika i aromatu, powszechnie karmelowego. Tequila to

Wybór Redakcji

Różnica między tłumaczem a tłumaczem w programowaniu

Kluczowa różnica: tłumacz jest rodzajem programu komputerowego służącego do określonego celu. Jak sama nazwa wskazuje tłumacz przekłada kod z jednego języka programowania na inny. Istnieją dwa rodzaje tłumaczeń, które są powszechnie używane: kompilator i interpreter. Interpreter robi to samo, co tłumacz, z tym wyjątkiem, że jest używany do interpretacji programów w języku wysokiego poziomu do języka niskiego poziomu. Programowanie może by