Hauptunterschied: C und C ++ sind zwei verschiedene Programmiersprachen. C ++ wurde aus der Programmiersprache C entwickelt. Sie sind jedoch recht unterschiedlich. Der offensichtlichste Unterschied ist, dass C eine prozedurorientierte Sprache ist, während C ++ sowohl die prozedurale als auch die objektorientierte Programmierung unterstützt. Daher wird C ++ oft als Hybridsprache bezeichnet.

C ist eine der ältesten derzeit verwendeten Programmiersprachen und eine der am häufigsten verwendeten Programmiersprachen. Es wurde ständig in Anwendungen verwendet, die zuvor in Assemblersprache codiert waren. Dies umfasst das Betriebssystem des UNIX-Computers. C hat auch direkt oder indirekt viele spätere Programmiersprachen beeinflusst, wie C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python und die C-Shell von Unix. Trotz all dieser neuen Sprachen bleibt C immer noch eine beliebte Programmiersprache.
Ursprünglich war C ++ eine Erweiterung von C. Es wurde entwickelt, um Source-and-Link-kompatibel zu C zu sein. Es wurden jedoch Klassen, virtuelle Funktionen, Überladen von Operatoren, Mehrfachvererbung, Vorlagen, Ausnahmebehandlung usw. hinzugefügt. Schließlich wurde es entwickelt genug, um als eigenständige Programmiersprache betrachtet zu werden. Es wurde ursprünglich 1998 als ISO / IEC 14882: 1998 zertifizierte Programmiersprache ratifiziert. Heute wird C ++ heute häufig für das Hardware-Design verwendet.
C ist eine universelle Programmiersprache, die Semikolon (;) als Anweisungsabschlusszeichen sowie geschweifte Klammern ({}) zum Gruppieren von Anweisungsblöcken verwendet. Es verfügt über Möglichkeiten zur strukturierten Programmierung und bietet Konstrukte, die typische Maschinenanweisungen effizient abbilden können. Sie ermöglicht auch den Umfang und die Rekursion von lexikalischen Variablen und verfügt über ein statisches Typsystem, das viele unbeabsichtigte Operationen verhindert.
Im Vergleich zu C ++ hat C jedoch zahlreiche Einschränkungen. Da C nicht objektorientiert ist, werden keine OOPS-Konzepte unterstützt. C unterstützt keine Funktions- und Operatorüberladung. Funktionen innerhalb von Strukturen können nicht verwendet werden. Es unterstützt keine virtuellen Funktionen und Referenzvariablen oder Ausnahmebehandlung. Es unterstützt auch keine Referenzvariablen. Außerdem kapselt C auch keine Datensicherung. Im Vergleich dazu unterstützt C ++ alle diese Funktionen.

Die beiden Sprachen unterscheiden sich auch in der Art der Adressspeicherfunktionen, der Eingabe / Ausgabe und der GUI-Programmierung. Zum Beispiel verwendet C die Funktionen calloc (), malloc () und free (), um Speicher zuzuweisen und die Zuweisung aufzuheben, während C ++ die Funktionen new und delete verwendet. C verwendet scanf () und printf () für Eingabe und Ausgabe, während C ++ die Operatoren cin >> und cout << verwendet. C unterstützt das GTK-Tool für die GUI-Programmierung, während C ++ Qt-Tools für die GUI-Programmierung unterstützt. Ein weiterer Unterschied besteht darin, dass C alle Variablen oben im Programm deklarieren muss, während in C ++ die Variablen an einer beliebigen Stelle im Programm deklariert werden können.
Darüber hinaus gilt C ++ normalerweise als leichter zu erlernen, da es benutzerfreundlicher als C ist. C ++ verfügt außerdem über zahlreiche zusätzliche Funktionen, die die Codierung erleichtern, insbesondere für jemanden, der mit dem C-Framework noch nicht vertraut ist. Viele behaupten jedoch, dass es tatsächlich wichtig ist. Die zwei Sprachen unterscheiden sich so sehr, dass sie tatsächlich zwei voneinander unabhängige Sprachen sein können. Dabei ist zu beachten, dass C wesentlich strukturierter ist als C ++, wohingegen C ++ aussagekräftiger und abstrakter als C konzipiert wurde.
Vergleich zwischen C und C ++:
C | C ++ | |
Gegründet | Entwickelt von Dennis Ritchie in den AT & T Bell Labs zwischen 1969 und 1973. | Entwickelt von Bjarne Stroustrup ab Bell Labs ab 1979. |
Quellcode | Freiformat-Programmquellcode | Ursprünglich aus der Programmiersprache C entwickelt |
Sprache | Verfahrensorientierte Sprache | Unterstützt sowohl prozedurale als auch objektorientierte Programmierparadigmen; Daher wird sie oft als Hybridsprache bezeichnet. |
Ansatz | Folgt dem Ansatz von oben nach unten. | Folgt von unten nach oben. |
Beziehung | C ist eine Teilmenge von C ++. Es kann kein C ++ - Code ausgeführt werden. | C ++ ist eine Obermenge von C. C ++ kann den Großteil des C-Codes ausführen, während C C ++ - Code nicht ausführen kann. |
Fahrt | Funktionsgesteuerte Sprache | Objektgesteuerte Sprache |
Fokus | Konzentriert sich auf die Methode oder den Prozess anstatt auf Daten. | Konzentriert sich auf Daten und nicht auf Methode oder Verfahren. |
Bausteine | Funktionen | Objekte |
Schlüsselwörter | Enthält 32 Schlüsselwörter | Enthält 52 Schlüsselwörter |
OOPS-Konzepte | Da die C-Sprache eine prozedurorientierte Sprache ist, unterstützt sie keine OOPS-Konzepte wie Klasse, Objekt, Vererbung, Polymorphismus, Datenverstecken usw. | Als objektorientierte Sprache unterstützt C ++ das Ausblenden von Klassen, Objekten, Daten, Polymorphismus, Vererbung, Abstraktion usw. |
Funktionen |
|
|
Speicherfunktionen | Verwendet die Funktionen calloc (), malloc () und free (), um Speicher zuzuweisen und die Speicherzuordnung aufzuheben. | Verwendet Operatoren new und delete zum selben Zweck. |
Verkapselung | Unterstützt nicht. Daten und Funktionen sind separate und freie Entitäten. | Unterstützt die Kapselung. Daten und Funktionen werden in Form eines Objekts zusammengekapselt. Die Objektklasse stellt einen Entwurf der Struktur des Objekts bereit. |
Informationen verstecken | C unterstützt kein Verstecken von Informationen. Hier sind Daten freie Entitäten und können durch Fremdcode manipuliert werden. | Die Kapselung verbirgt die Daten, um sicherzustellen, dass Datenstrukturen und Operatoren bestimmungsgemäß verwendet werden. |
Daten | Unterstützt integrierte und primitive Datentypen. Daten werden nicht gesichert, weil sie nicht objektorientiert sind | Unterstützt sowohl integrierte als auch benutzerdefinierte Datentypen. Daten werden in C ++ gesichert (verborgen) |
Niveau | Low-Level-Sprache | Sprache der mittleren Ebene |
Input-Output | Die Sprache 'C' verwendet scanf () und printf () für die Eingabe und Ausgabe. | Die Sprache C ++ verwendet die Operatoren cin >> und cout << für die Eingabe und Ausgabe. |
Deklaration von Variablen | C erfordert, dass alle Variablen oben im Programm deklariert werden. | In C ++ können die Variablen vor der Verwendung an einer beliebigen Stelle im Programm deklariert werden. |
Mehrfacherklärung | Mehrfachde Deklaration globaler Variablen ist erlaubt. | Die Mehrfachdeklaration globaler Variablen ist nicht zulässig. |
Kartierung | Die Zuordnung zwischen Daten und Funktionen ist schwierig und kompliziert. | Zuordnung zwischen Daten und Funktion kann über "Objekte" verwendet werden |
GUI-Programmierung | C unterstützt das GTK-Tool für die GUI-Programmierung | C ++ unterstützt Qt-Tools für die GUI-Programmierung |
Erbe | Vererbung ist in C nicht möglich | Vererbung ist in C ++ möglich |
Dateierweiterung | Hat die Dateiendung .c | Hat die Dateiendung .cpp |
Standardheaderdatei | Die in C-Sprache verwendete Standardheaderdatei ist stdio.h | Die in C ++ verwendete Standardheaderdatei ist iosteam.h |
Einige Beispiele für den Unterschied zwischen C und C ++:
Beispiele | C | C ++ |
Variable Aussage | Nur an der Spitze: int i; für (i = 10; i <10; i ++) | Überall im Programm: für (int i = 10; i <10; i ++) |
Speicherzuweisung | Malloc: int * x = Malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Neu: int * x = neues int; int * x_array = new int [10]; |
Speicher freigeben | Kostenlos: frei (x); frei (x_array); | Löschen: x löschen; delete [] x_array; |