Effektiver Einsatz von Struct,Klassen...etc...
-
RHBaum schrieb:
Die frage muesste also eigentlich lauten ....
Wann verwende ich am besten eine Klasse mit gekapselten Daten (hier sollte man class verwenden), und wann eine unkontrollierte Ansammlung von PODS(hier sollte man struct nehmen)?
Ciao ...
Somit könnte man sagen:
Jeder, der das Open-Closed-Prinzip beachtet, braucht keine structs
. Somit dürften die meisten keine brauchen.
Außer man will auf die schnelle was reinhacken und langfristiges Design ist egal :D.
-
simon.phoenix schrieb:
Jeder, der das Open-Closed-Prinzip beachtet, braucht keine structs
. Somit dürften die meisten keine brauchen.
Was natürlich blödsinn ist. Weil man manchmal eben keine Klasse sondern nur eine Sammlung von Daten hat. und da sind structs (also im sinne von: alles public, keine/kaum methoden) durchaus sinnvoll.
-
Shade Of Mine schrieb:
Was natürlich blödsinn ist. Weil man manchmal eben keine Klasse sondern nur eine Sammlung von Daten hat. und da sind structs (also im sinne von: alles public, keine/kaum methoden) durchaus sinnvoll.
Bleibe bei meiner Meinung, dass das nicht häufig vorkommt.
-
Hallo
man kanns auch andersrum sehen. Wenn man irgendwann mal Vererbung braucht, nimmt man class. Ansonsten reicht struct.
bis bald
akari
-
akari schrieb:
man kanns auch andersrum sehen. Wenn man irgendwann mal Vererbung braucht, nimmt man class. Ansonsten reicht struct.
Erkärst Du uns bitte auch, warum man mit structs Vererbung nicht nutzen kann?
-
struct attr { std::string str; int i; }; std::map< std::string, attr > attr_map;
Wozu soll bzw. muß ich hier bitte anstelle einer Struktur eine Klasse nehmen? Nur der Klasse wegen?
Es gibt ganz einfach manchmal Situationen wo ich mit einem struct etwas aussagen kann. Wie das da oben z.B. Ich will und brauche in dem Fall keine attr-Klasse. Weil ich z.B. attr_map in einer Klasse benutze, wo ich attr_map unter Kontrolle habe.
-
simon.phoenix schrieb:
Bleibe bei meiner Meinung, dass das nicht häufig vorkommt.
Hast du meinen Post (am Anfang) gelesen? Da steht nämlich ein Verwendungsbeispiel.
-
godlikebot schrieb:
simon.phoenix schrieb:
Bleibe bei meiner Meinung, dass das nicht häufig vorkommt.
Hast du meinen Post (am Anfang) gelesen? Da steht nämlich ein Verwendungsbeispiel.
Das struct (Adresse) könnte aber womöglich irgendwann mal irgendwelche Funktionen gebrauchen. Dann ist sein Zweck als reiner Datenhalter passé.
Und dann habe ich letztendlich Datenelemente + Funktionen, was imho zumindest langfristig zu Open/Closed führt. Dann habe ich die Elemente als private und das struct ist sinnlos.
-
simon.phoenix schrieb:
Bleibe bei meiner Meinung, dass das nicht häufig vorkommt.
Da irrst du dich aber. Gerade wenn es um Template Programmierung geht, trifft man hin und wieder schon auf structs.
akari schrieb:
man kanns auch andersrum sehen. Wenn man irgendwann mal Vererbung braucht, nimmt man class. Ansonsten reicht struct.
Nope. Vererbung ist doch keine Voraussetzung für OCP.
-
groovemaster schrieb:
Da irrst du dich aber. Gerade wenn es um Template Programmierung geht, trifft man hin und wieder schon auf structs.
ok, da hast du Recht :).