Hallo,
es gibt C in Klassen und es gibt C++
- Nun ist C++ eine Sprache für objektorientierte Programmierung, aber pragmatischerweise kompatibel zu C. "namespaces" sehe ich als Relikt an. In manchen Fällen sind sie vielleicht ganz nützlich um allgemeine Definitionen z.B. einer Klassenbibliothek zusammenzufassen.
Eine Zusammenfassung von Daten sollte immer in einer Klasse oder einer Datenstruktur (struct) erfolgen. In C++ ist da quasi kein wirklicher Unterschied, nur dass eben das reservierte Wort "struct", bereits in C Daten zusammenfasst. Ein Unterschied sind die Standard-Zugriffsrechte: wird bei "struct" nichts weiter angegeben, sind die Eigenschaften "public" <-> bei "class" sind sie "private".
Ich persönlich würde immer "class" benutzen und Eigenschaften wirklich nur in absoluten Ausnahmefällen (Optimierung) öffentlich machen, sonst nur über Zugriffsmethoden. Dies ist erst mal aufwendigen zu kodieren, macht sich aber später bezahlt, wenn das Programm angewachsen ist und mehrfach umgebaute werden muss, oder Teile davon weiterverwendet werden. In der Praxis ist das an der Tagesordnung.
Ich hoffe, dass ich damit einen Betrag zu besserem C++ Verständnis geleistet habe.
lg
Mike