logo

Unterschied zwischen C und C++

Ähnlichkeiten zwischen C Und C++ Sind:

  • Beide Sprachen haben eine ähnliche Syntax.
  • Die Codestruktur beider Sprachen ist gleich.
  • Die Zusammenstellung beider Sprachen ist ähnlich.
  • Sie haben die gleiche grundlegende Syntax. Fast alle Operatoren und Schlüsselwörter von C sind auch in C++ vorhanden und bewirken dasselbe.
  • C++ verfügt über eine etwas erweiterte Grammatik als C, die grundlegende Grammatik ist jedoch dieselbe.
  • Das grundlegende Speichermodell beider ist sehr nah an der Hardware.
  • In beiden Sprachen sind die gleichen Vorstellungen von Stack, Heap, Dateibereich und statischen Variablen vorhanden.



Unterschiede zwischen C Und C++ Sind:
C++ wird oft als Obermenge von C betrachtet. C++ wird auch als C mit Klasse bezeichnet. Dies traf fast zu, als C++ ursprünglich erstellt wurde, aber die beiden Sprachen haben sich im Laufe der Zeit weiterentwickelt, wobei C eine Reihe von Funktionen übernommen hat, die entweder nicht vorhanden waren. Sie sind in der aktuellen Version von C++ nicht zu finden oder haben es noch in keine Version von C++ geschafft. Allerdings ist C++ immer noch größtenteils eine Obermenge des C-Addierens Objekt orientierte Programmierung , Ausnahmebehandlung , Templating und eine umfangreichere Standardbibliothek.

Nachfolgend finden Sie eine Tabelle mit einigen der offensichtlicheren und allgemeineren Unterschiede zwischen C und C++. Es gibt noch viele weitere subtile Unterschiede zwischen den Sprachen und zwischen den Sprachversionen.

C C++
C wurde von Dennis Ritchie zwischen 1969 und 1973 in den AT&T Bell Labs entwickelt. C++ wurde 1979 von Bjarne Stroustrup entwickelt.
C unterstützt keinen Polymorphismus, keine Kapselung und keine Vererbung, was bedeutet, dass C keine objektorientierte Programmierung unterstützt. C++ unterstützt Polymorphismus , Verkapselung , Und Nachlass weil es eine objektorientierte Programmiersprache ist.
C ist (meistens) eine Teilmenge von C++. C++ ist (meistens) eine Obermenge von C.
Anzahl Schlüsselwörter in C:
* C90: 32
* C99: 37
* C11: 44
* C23: 59
Anzahl Schlüsselwörter in C++:
* C++98: 63
* C++11: 73
* C++17: 73
* C++20: 81
Für die Entwicklung von Code unterstützt C Verfahrensprogrammierung . C++ ist als Hybridsprache bekannt, da C++ beides unterstützt verfahrenstechnisch Und Objektorientierte Programmierparadigmen .
Daten und Funktionen werden in C getrennt, da es sich um eine prozedurale Programmiersprache handelt. Daten und Funktionen werden in C++ gemeinsam in Form eines Objekts gekapselt.
C unterstützt das Ausblenden von Informationen nicht. Daten werden durch die Kapselung ausgeblendet, um sicherzustellen, dass Datenstrukturen und Operatoren wie vorgesehen verwendet werden.
Integrierte Datentypen werden in C unterstützt. Integrierte und benutzerdefinierte Datentypen werden in C++ unterstützt.
C ist eine funktionsgesteuerte Sprache, da C eine prozedurale Programmiersprache ist. C++ ist eine objektgesteuerte Sprache, da es sich um eine objektorientierte Programmierung handelt.
Das Überladen von Funktionen und Operatoren wird in C nicht unterstützt. Das Überladen von Funktionen und Operatoren wird von C++ unterstützt.
C ist eine funktionsgesteuerte Sprache. C++ ist eine objektgesteuerte Sprache
Funktionen in C werden nicht innerhalb von Strukturen definiert. Funktionen können innerhalb einer Struktur in C++ verwendet werden.
Namespace-Funktionen sind in C nicht vorhanden. Namensraum wird von C++ verwendet, um Namenskollisionen zu vermeiden.
Standard-IO-Header ist stdio.h . Standard-IO-Header ist iostream.h .
Referenzvariablen werden von C nicht unterstützt. Referenzvariablen werden von C++ unterstützt.
Virtuelle Funktionen und Freundesfunktionen werden von C nicht unterstützt. Virtuell Und Freundfunktionen werden von C++ unterstützt.
C unterstützt keine Vererbung. C++ unterstützt Vererbung.
Anstatt sich auf Daten zu konzentrieren, konzentriert sich C auf Methoden oder Prozesse. C++ konzentriert sich auf Daten statt auf Methoden oder Prozeduren.
C bietet malloc() Und calloc() Funktionen für dynamische Speicherzuweisung , Und frei() zur Speicherfreigabe. C++ bietet neuer Betreiber zur Speicherzuweisung und Löschoperator zur Speicherfreigabe.
Eine direkte Unterstützung für die Ausnahmebehandlung wird von C nicht unterstützt. Ausnahmebehandlung wird von C++ unterstützt.
scanf() und printf()-Funktionen werden für die Ein-/Ausgabe in C verwendet. Cin und Cout werden verwendet für Eingabe/Ausgabe in C++ .
C-Strukturen haben keine Zugriffsmodifikatoren. C++-Strukturen verfügen über Zugriffsmodifikatoren.
In der Programmiersprache C gibt es keine strikte Typprüfung. Strikte Typprüfung erfolgt in C++. So viele Programme, die im C-Compiler gut laufen, führen im C++-Compiler zu vielen Warnungen und Fehlern.
C unterstützt keine Überladung C++ unterstützt Überladung
Typ-Wortspiele mit Gewerkschaften sind erlaubt (C99 und höher) Wortspiele mit Gewerkschaften sind undefiniertes Verhalten (außer unter ganz bestimmten Umständen).
Benannte Initialisierer scheinen möglicherweise nicht in der richtigen Reihenfolge zu sein Benannte Initialisierer müssen mit dem Datenlayout der Struktur übereinstimmen
Die Dateierweiterung ist .c Die Dateierweiterung ist .cpp oder .c++ oder .cc oder .cxx
Metaprogrammierung: Makros + _Generic() Metaprogrammierung: Vorlagen (Makros werden weiterhin unterstützt, aber nicht empfohlen)
Es gibt 32 Schlüsselwörter im C Es gibt 97 Schlüsselwörter in C++