Ä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++ |