Seite 1 von 1

C++ modern und C++ früher

Verfasst: Mi Jun 09, 2021 1:12 pm
von Xeon
Hallo zusammen

Mit beschäftigt folgende Frage: Was ist der Unterschied zwischen C++ modern und wie man C++ früher programmiert hat? Ist es ein andere Programmiert-Stil? Oder ist C++ modern eine bessere Programmiermethode?


Liebe Grüße
Von Xeon

Re: C++ modern und C++ früher

Verfasst: Mi Jun 09, 2021 3:17 pm
von Xin
Da ich aktuell eine Hand etwas lädiert habe, versuche ich das mal möglichst kurz:

C++ ist als Sprache entstanden, in der man viele Dinge ausdrücken kann. Das haben die Leute dann auch gemacht. Entsprechend hat jeder programmiert, was er für richtig hielt. Was bedeutet, dass sich jeder in den Code einlesen musste. Viele Probleme wiederholen sich jedoch.
Man braucht immer wieder Listen und Daten-Container und wenn die alle gleich funktionieren, kann man Algorithmen schreiben, die Probleme lösen, wenn man ihnen einen Container gibt.

Es hat sich gezeigt, dass es eine Sammlung von interessanten Algorithmen gibt, wie Beispielsweise accumulate, transform oder sort, die sich immer wieder praktisch zeigen, wenn man mit Containern arbeitet.

Modern C++ legt nun mehr Focus auf die Standard-Container und Standard-Algorithmen. Die lernt man und dann wenn bei einem Jobwechsel die Firma auch diese Standard-Programmierung verwendet, weiß man schnell wo man dran ist, anstatt erstmal deren Library zu lernen und alles zu vergessen, was man zuvor gelernt hat.

Einige der Denkweisen kommen aus der funktionalen Programmierung, die man sich hier auch in C++ reinholt. An der Stelle handelt es sich dann auch irgendwo um eine andere Denkweise.

Re: C++ modern und C++ früher

Verfasst: Mo Jun 14, 2021 10:10 pm
von jomaber
Ich habe weder von Stroustrup noch von Meyers jedes Buch gelesen, sondern immer wieder mal reingelesen. Wenn ich das halbwegs richtig einschätze, dann gibt es folgende Tentenzen,
Betonung der STL (wie von Xin oben gesagt)
Vermeidung von fehleranfälligen Konstrukten (Zeiger sind oft nicht nötig bzw können durch entsprechende Konstrukte wie Smart Pointer und Verwandte ersetzt werden)
Benutzung von auto type deduction
Benutzung der Boost-Libraries

Die Anlehnung/Verwandtschaft mit C gerät sicher mehr in den Hintergrund durch Templates/Metaprogrammierung/funktionale Programmierung ...

Re: C++ modern und C++ früher

Verfasst: Mi Jun 16, 2021 12:51 pm
von Xin
Mit Boost wäre ich da vorsichtiger, Boost hat Vorteile und auch Nachteile... manches ist aber Kinderstube für zukünftige Standards.