C vs. C++: różnice i podobieństwa

C jest podstawą C++. Chociaż C ++ jest szerzej używany w aplikacjach komputerowych i grach, jest to doskonała opcja na rozpoczęcie od C, zwłaszcza jeśli jesteś nowy w świecie oprogramowania. Czytaj dalej, aby dowiedzieć się dlaczego.

Co to jest C?

C to język programowania strukturalnego wysokiego poziomu. Programy napisane w C są przenośne. C jest nadal jednym z najlepszych języków programowania, ponieważ jest solidny. Jest używany do złożonych programów, takich jak systemy wbudowane, sterowniki, jądra, aplikacje systemowe, systemy operacyjne, takie jak Microsoft Windows, Apple OS X, bazy danych, takie jak MySQL i niektóre aplikacje IoT.

C jest językiem skompilowanym, zapewniając w ten sposób warstwę abstrakcji między kodem maszynowym a programem.

Prosty program w C do dodawania dwóch liczb będzie wyglądał tak.

#include<stdio.h>
int main()
{
int a, b, sum;
printf("Enter two numbers to add: ");
scanf("%d%d", &a, &b);
sum = a + b;
printf("nSum of %d and %d is %d", a, b, sum);
return 0;
}

Oto wynik:

Wyjście przykładowego programu C

Programy w C zawierają stdio.h – standardowe wejście wyjściowe.

STDIO zapewnia podstawowe funkcje wejścia-wyjścia, takie jak printf i scanf. printf jest używany do drukowania czegoś (wiadomości, wyjścia) na konsoli, podczas gdy scanf jest używany do pobierania danych wejściowych z konsoli. Używamy %d, aby wskazać, że liczby są liczbami całkowitymi.

Jeśli podasz ułamki dziesiętne, otrzymasz dziwne odpowiedzi. Aby tego uniknąć, możesz użyć %f. Funkcja main() jest pierwszą funkcją wykonywaną podczas działania programu. Składnia jest bardzo prosta – zadeklaruj typy zmiennych, a następnie ich użyj.

Co to jest C++?

C++ opiera się na zasadach programowania obiektowego, takich jak abstrakcja, polimorfizm, dziedziczenie i enkapsulacja. Możesz myśleć o C++ jako o rozszerzeniu C z koncepcją klas i obiektów.

Posiadanie obiektów do przechowywania danych nadało programom zgrabną strukturę. Na przykład, jeśli chcesz przechowywać dane ucznia, możesz utworzyć klasę ucznia i utworzyć atrybuty, takie jak imię i nazwisko, wiek, hobby, oceny itp. W ramach klasy. W razie potrzeby możesz stworzyć prawdziwy obiekt studencki!

class Student {
public: 
char name[20];
int age;
float marks;
};

//This will create an object
Student student1 = new Student();

W rzeczywistości obiekt zostanie utworzony, a pamięć alokowana tylko w czasie wykonywania.

C++ zapewnia wysoką wydajność, dlatego jest obecnie najpopularniejszym wyborem do tworzenia wysokowydajnych silników gier, systemów wbudowanych, przeglądarek, kompilatorów i aplikacji graficznych, takich jak przetwarzanie obrazu.

Niewiele baz danych, takich jak MongoDB, jest napisanych w C++. Podobnie jak C, C++ jest przenośny.

Napiszmy nasz poprzedni program dodawania w C++ – zwróćmy uwagę na różne funkcje.

#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Enter the numbers: "; 
cin >> a >> b;
int sum = a + b;
cout << a << " + " << b << " = " << sum;
return 0;
}

Zauważ, że używamy cout i cin zamiast printf i scanf. Ponadto deklaracje typu można wykonać w dowolnym miejscu programu przed użyciem zmiennej (na przykład suma zmiennej). Instrukcja print jest dość prosta i zawiera tylko nazwy zmiennych. Zauważ, że używamy standardowej przestrzeni nazw z nagłówka iostream. std ma metody takie jak cout, in i wiele innych.

Podobieństwa między C i C++

Można powiedzieć, że C jest podzbiorem C++. Istnieje wiele podobieństw między C i C++, czy to w sposobie pisania programów, czy w aplikacjach, do których są używane. Oba są solidne, przenośne i bardzo wydajne. Niektóre ważne podobieństwa to:

Sno.FeatureExplanation1.SyntaxOba mają tę samą składnię, na przykład deklarację zmiennej, średnik końca wiersza, konwencje nazewnictwa itp.2.Strukturalne i proceduralneKażdy wiersz kodu jest wykonywany jeden po drugim. Programy mają następującą strukturę – najpierw importy, potem deklaracje zmiennych, a następnie główny kod. 3. Funkcja Main() Cały kod, który ma zostać wykonany, powinien znajdować się wewnątrz funkcji main(). main() jest pierwszym wywołaniem funkcji podczas wykonywania programu. 4.Wskaźniki Zarówno C, jak i C++ używają wskaźników w ten sam sposób. Wskaźnik to zmienna, która przechowuje adres pamięci innej zmiennej. Na przykład int a = 1;. Jak tylko ten kod zostanie wykonany, pamięć (powiedzmy XX0011) zostanie przydzielona dla a. Dostęp do lokalizacji pamięci 'a’ można uzyskać za pomocą znaku ampersand (&) jako int ptr_a = &a;5.Słowa kluczowe i operatoryWszystkie słowa kluczowe i operatory obecne w C są również poprawne dla C++. Na przykład zakres, statyczny, publiczny, int itp. C++ ma również dodatkowe operatory i słowa kluczowe.Podobieństwa między C i C++

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

C++ został stworzony, aby przezwyciężyć niektóre niedociągnięcia C i jest nadzbiorem C. Tak więc każdy program napisany w C będzie działał w C++ – ale nie odwrotnie! Główna różnica między C i C++ polega na tym, że C++ opiera się na zasadach programowania obiektowego (OOP). Ponadto kładzie się większy nacisk na sprawdzanie typu w C++. Istnieje również kilka bardziej subtelnych różnic, które wymieniono poniżej:

CC++ Został opracowany w latach 1969-1973 przez Dennisa Ritchie w AT&T Bell labs Opracowany przez Bjarne Stroustrup w 1979 roku. Nie przestrzega zasad programowania obiektowego Oparty na koncepcjach OOPS, takich jak enkapsulacja, polimorfizm i dziedziczenie , switch, int, static, union i inneWszystkie słowa kluczowe C są poprawne w C++, istnieje również 31 dodatkowych słów kluczowych. Obsługuje tylko programowanie proceduralne C++ obsługuje wiele paradygmatów programowania, takich jak OOP, programowanie ogólne i funkcjonalne Nie możemy implementować funkcji OOP w C .Funkcje takie jak przyjaciele, funkcje wirtualne w C++ zwiększają istotę OOP.C obsługuje wbudowane typy danych.C++ obsługuje zarówno wbudowane, jak i zdefiniowane przez użytkownika typy danych poprzez koncepcję klas Istnieje możliwość przeciążania operatorów lub funkcji C++ obsługuje oba operatory i przeciążanie funkcji (polimorfizm)Alokacja pamięci odbywa się za pomocą funkcji malloc() i calloc(), a cofnięcie alokacji za pomocą free() Alokacja pamięci happ ens przy użyciu operatora new i cofnięcie alokacji przy użyciu operatora C usunięcia nie obsługuje obsługi wyjątkówObsługuje obsługę wyjątków Skupia się na procedurze lub metodzie bardziej niż na danychBardziej skoncentrowany na danych Różnice między C i C++

Inne ważne funkcje obecne tylko w C++ to:

  • Używając słowa kluczowego namespace, możemy tworzyć zmienne o tej samej nazwie w różnych przestrzeniach nazw.
  • Możemy używać funkcji wewnątrz struktury. Struktury mogą również posiadać modyfikatory dostępu.
  • Obsługuje zmienne referencyjne.

Kiedy używać C lub C++

To bardzo powszechna debata wśród programistów – po co mam uczyć się C, skoro wszystko mogę zrobić w C++?

Nauka C da ci solidne podstawy w zakresie struktur danych, wskaźników, słów kluczowych, koncepcji stosu, sterty i alokacji pamięci.

Poza tym C jest nadal szeroko stosowany w aplikacjach o wysokiej wydajności, ponieważ kompilator C jest szybszy niż kompilator C++. Tak więc, jeśli chcesz pisać fragmenty kodu, które nie wymagają obiektów i klas, funkcji wirtualnych lub szablonów, wybierz C, ponieważ C++ może być przesadą z jego rozbudowanymi bibliotekami.

Większość kodów niskopoziomowych, takich jak jądra, systemy operacyjne i bazy danych, jest nadal utrzymywana w C, więc znajomość C pomoże Ci również szybciej nauczyć się C++.

C++ jest uważany za jeden z najszybszych i najbardziej wydajnych języków – dlatego nadal jest jednym z najlepszych języków programowania, szczególnie w przypadku aplikacji o wysokiej wydajności, takich jak silniki gier, urządzenia IoT i aplikacje komputerowe. Wiele aplikacji wykorzystuje kombinację kodu C i C++ – w celu uzyskania optymalnej wydajności i korzyści z programowania obiektowego.

Streszczenie

W tym artykule poznaliśmy podstawy C i C++ za pomocą prostego przykładowego programu. Omówiliśmy główne różnice i podobieństwa między obydwoma językami oraz kiedy używać każdego z nich.

Jeśli dopiero zaczynasz swoją przygodę z tworzeniem oprogramowania, rozpoczęcie od C zapewni Ci zwiększenie pewności, ponieważ jest łatwe i obejmuje wszystkie koncepcje programowania, takie jak struktury danych, wskaźniki, pamięć i tak dalej.

Być może zainteresuje Cię korzystanie z internetowego kompilatora języka C i kompilatora C++ firmy newsblog.pl.