Frage zum Klassendesign
-
Hallo,
mal angenommen ich habe eine Klasse mit mehreren Funktionen.
Eine Funktion braucht eine Variable (z.B int tmp; ) aber die anderen Funktionen nicht. Sollte ich die Variable in der Funktion Deklarieren?
beispiel:class KLASSE { private: string name; int tmp; //Hier Deklarieren? public: string getName() { name="test"; return name; } int getTest() { int tmp; //oder hier? //tmp berechnen return 3*3+tmp; } }Vielen Dank
-
mtaesler schrieb:
Hallo,
mal angenommen ich habe eine Klasse mit mehreren Funktionen.Wie man's nimmt...

Du hast eine Klasse für Instanzen (Objekte) mit mehreren Instanzfunktionen. Die Funktionen sind für die Instanzen der Klasse (die Objekte). Wären es Funktionen "der Klasse" selbst wären sie static deklariert.Es lohnt sich diese Dinge genau zu formulieren.
mtaesler schrieb:
Eine Funktion braucht eine Variable (z.B int tmp; ) aber die anderen Funktionen nicht. Sollte ich die Variable in der Funktion Deklarieren?
beispiel:class KLASSE { private: string name; int tmp; //Hier Deklarieren? public: string getName() { name="test"; return name; } int getTest() { int tmp; //oder hier? //tmp berechnen return 3*3+tmp; } }Vielen Dank
Modeliert die Variable einen Zustand der Instanz(des Objektes)? Nein!
=> lokale Variable (innerhalb der Funktion).Btw "KLASSE" ist kein guter Name; dahinter würde man ein Makro (#define) vermuten. Einfach "Klasse" ist besser.
Grüsse
*this
-
mtaesler schrieb:
Sollte ich die Variable in der Funktion Deklarieren?
immer so lokal wie möglich!