Klassen ineinander schachteln --> macht man sowas?
-
Hallo,
läuft zwar eigentlich wunderbar, drum werd ich auch nix mehr dran ändern.
Mich würd jedoch für die Zukunft interessieren, ob es empfehlenswert bzw.
"politisch korrekt"ist, mehrere Klassen in einander zu schachteln
(macht einfach irgendwie nen suspekten Eindruck).Dafür spricht, dass es denk ich halbwegs den Gegebenheiten entspricht
(Ein Datenbankabfrageergebnis setzt sich nun mal aus Spalten, Zeilen und Zellen zusammen),
auf der anderen Seite frag ich mich, ob's nicht besser ist,
wenn man hier auf Vererbung setzt... (da z. B. die Klasse CELL auf den selben
Datensatz wie ROW zugreift)najo,
Danke schon mal für die AntwortenPS:
so schaut die Verschachtelung ausclass MQL { public: class RESULT { public: class ROW { public: class CELL { }; }; }; };
-
Hallo, ich persönlich finde solchen Stil unschön. Was spricht eigendlich gegen folgende Implementierung:
class MQL { ... RESULT *m_pResult; ... }; class RESULT { ... ROW *m_pRow; ... }; class ROW { ... };
-
Kommt ganz auf das Design deiner Implementierung an.
Wenn es nach aussen benutzbar sein sollte, ist es ausserhalb der Klasse oder innerhalb gut platziert.
Wenn nicht, wuerde ich es in die Klasse ( private / protected bereich ) der in einen unternamespace PRIVATE packen.
Aber wenn man es genau nimmt, ist das eh eine Stielfrage, und Geschmacksbedingt, und darueber braucht man nicht streiten.
Ich persoenlich benutze beides, je nachdem was ich implementiere, bzw. was in dem Projekt fuer eine Coding Guideline existiert.
-
Klassenschachtelung ist ne hübsche Sache, schon, um Namensüberlagerungen zu vermeiden - und, du kannst den Kram richtig verstecken, indem du ihn private erklärst - dieses namespace private-Gebastel ist mir da irgendwie suspekt.
Außerdem wird durch das Schachteln die Zugehörigkeit ohne weiteren Aufriss offensichtlich - in deinem Fall wäre durch den Klassennamen MQL::RESULT::ROW sofort klar, wozu die Klasse gehört.