004
13.01.2006, 11:50 Uhr
ao
(Operator)
|
Dazu müssen die Setter und Getter nicht public, sondern private sein:
C++: |
class B { public: B(); // Konstruktor ~B(); // Destruktor
private: void Set_Ej_von_B (int i); C *objC; D *objD; private: E *objE; };
|
Andere Klassen entsprechend.
Sowas hier
C++: |
void A::Start() { objB->Set_Ej_von_B(5); int jc/d = objB->objC/D->Get_Ej_von_C/D(); }
|
ist allerdings ziemlich dreckig, die Klasse B muss dazu ihre Innereien (objC und objD) offenlegen. Das ist C-Programmierung mit C++-Mitteln, ein übler Missbrauch von OO-Konzepten, der zwar anfangs zu schnellen Erfolgserlebnissen führt, aber später oft großen Ärger macht.
Erste Regel für Anfänger: Membervariablen grundsätzlich private deklarieren. Es kann Gründe geben, davon abzuweichen, das ist aber nur was für Leute, die so weit fortgeschritten sind, dass sie diese Gründe beurteilen können. Wenn du lernen willst, von OO-Prinzipien zu profitieren, musst du sie zuallerst konsequent anwenden.
Wenn man Mühe hat, ein Klassenmodell zu programmieren, kann das daran liegen, dass man schon beim Modellieren einen Fehler gemacht hat. Daher nochmal: Was soll das da oben sein?
ao |