Die wesentlichste Neuerung von C++ im Gegensatz zu C ist das Programmieren mit Klassen. Dies war in C nicht möglich. Andere Programmiersprachen, wie das erwähnte SIMLUA67, hatten diese Möglichkeiten schon und bei den Programmierern setzte sich allmählich die Erkenntnis durch, daß objektorientiertes Programmieren viele Erleichterungen bringt, vor allem auch struktureller Art.
Im Laufe der Zeit entwickelte sich C++ weiter und erhielt immer mehr Elemente, die in C nicht vorhanden waren. So wurde das Überladen von Operatoren konsequenterweise übernommen, um objektorientiertes Programmieren noch weiter zu vereinfachen. Wenn man z. B. eine Klasse komplexer Zahlen definiert, so überlädt man die arithmetischen Operatoren und den Ausgabeoperator und schon läßt sich diese Klasse wie die vordefinierten Zahlentypen nutzen.
Schließlich betreffen die größten Änderungen das Erstellen von Klassen- und Funktionsschablonen, um diese weitgehend typunabhängig gestalten zu können. Auch die Ausnahmebehandlung fehlte noch in C und erlaubt heute ein komfortables Handling von auftretenden Fehlern.
C wurde oft vorgeworfen, daß es schlechten Programmierstil fördere. So wurde es vor allem lange Zeit im Lehrbetrieb umgangen, da es sehr leicht möglich ist, völlig unlesbare Programme zu schreiben. Zwar ist es auch in C++ möglich unsaubere Programme zu schreiben, aber das strukturierte Programmieren ist in C++ eine Voraussetzung um die Möglichkeiten einfach und effizient auszunutzen.