Frage #6

Was sind die Unterschiede zwischen C und C++?

Ist C und C++ ein und dasselbe? Das erscheint einem manchmal in euren Texten so. Für jemanden wie mich (also ohne jegliche Erfahrung) ist es schwierig zu verstehen was nun zu was gehört.
Und wenn C anders als C++ ist, ist es dann leichter mit C-Vorkenntnissen C++ zu lernen?

Antwort:

Man spricht häufig von „C/C++“, wenn sich Aussagen auf C wie auch auf C++, beziehen. Syntaktisch ist C++ eine Erweiterung zu C. Das bedeutet, dass alle C-Befehle auch in der Sprache C++ vorhanden sind. Ein C Programm lässt sich nahezu immer ohne Veränderungen mit einem C++ Compiler übersetzen.

Die Sprache C enthält alle grundlegenden Konstrukte, die zum Programmieren notwendig sind: Sie ermöglicht es, Entscheidungen zu treffen, Programmteile wiederholt auszuführen und Daten und Programmteile strukturiert aufzubauen.

Das wichtigste Stichwort zu C++ ist „Objektorientierte Programmierung“ (auch OOP genannt). OOP ist auch mit C möglich, doch C++ hilft dem Entwickler dabei. C++ ist also eine Sprache mit OOP-Unterstützung, wohin der C-Programmierer objektorientierte Programme selbst verwalten muss. Weiterhin enthält C++ die Möglichkeit, Quelltext aus Mustern (Generisches Programmieren) zu erzeugen und so hochoptimierte Programme zu erstellen. Weitere wichtige Erweiterungen zu C sind Referenzen und Namespaces.

Obwohl C++ eine Erweiterung zu C ist, kann man mit C++ nicht mehr oder mächtigere Programme schreiben, denn mit C kann man bereits nahezu alles formulieren, was man mit Computern machen kann. Die objektorientierte Entwicklung verlangt dem Entwickler allerdings mehr Disziplin ab, die Erweiterungen helfen dem Programmierer damit sein Programm als Quelltext besser zu organisieren, so dass er einen besseren Überblick über seine Software behält.

Die Erweiterungen, die in C++ existieren, werden mit den gleichen Konstrukten gesteuert (Entscheidungen treffen, Programmteile in Funktionen zusammenfassen und Wiederholungen durch Schleifen), die bereits C eingeführt hat.

Wer also C++ programmieren möchte, muss die Konstrukte beherrschen, die genauso in C verwendet werden. Daher spricht man, wenn man diese Grundkonstrukte beschreibt, häufig von C/C++, weil sich diese Aussagen dann auf beide Sprachen gleichermaßen beziehen.

Wenn man C++ lernen möchte, so muss man zunächst die Grundkonstrukte von C lernen.

Libraries

Zusätzlich zu den Befehlen, die die Sprachen beherrschen, gibt es Standard-Libraries. Das sind Hilfsfunktionen, die zum Beispiel Dateizugriffe oder die Ausgabe auf dem Bildschirm bereitstellen. Wer C++ lernen möchte, sollte sich auf die C++-Libraries konzentrieren, da sie deutlich komfortabler sind. Da C allerdings vollständig in C++ enthalten ist, sind auch die C-Hilfsfunktionen vollständig in C++ enthalten.

Dieses C-Programm schreibt „Hallo Welt“ auf den Bildschirm und lässt sich also auf C und C++ gleichermaßen übersetzen, es ist also ein C/C++-Programm.

#include <stdio.h>
 
int main( void )
{
  printf( "Hallo Welt\n" );
  return 0;
}

Folgendes Programm ist ein reines C++-Programm, das ebenfalls „Hallo Welt“ auf den Bildschirm schreibt:

#include <iostream>
 
int main( void )
{
  std::cout << "Hallo Welt" << std::endl;
  return 0;
}

Ein C-Compiler würde dieses Programm nicht übersetzen können.

Verbesserungsvorschläge

Hat dir diese Antwort geholfen? Wenn nicht oder wenn du Verbesserungs- bzw. Erweiterungsvorschläge hast, dann schreib das bitte einfach auf die Diskussionsseite.

Zurück zur FAQ-Übersicht