subclassen array Zugriff
-
Ich hab flogendes Problem, ich hab ein Programm, das auf Klassenn basiert, die wiederum alle auf einer Subklasse basieren.
jedes mal wenn ein Objekt erstellt, werden sie einem riesen haupt-Pointer array hinzugefügt diese besitzt eine virtuelle funktion namens handle.
. ausserdem gibts noch ein 2d int array, indem man die Id der einzelnen Klassen auslesen kann, für alle Buttons beispielsweise: Klassenarray[type_button][] stellt dieses array alle ids aller Buttons bereit.
mit dieser funktion kann jede Klasse ihren individuellen Code abarbeiten.nun ist folgendes Problem: die Subklasse beinhaltet, um beim Button zu bleiben ein Attribut namens ispressed.
gibt es nun eine Möglichkeit über die Subklasse auf dieses Attribut zuzugreifen?Bisher hab ich einfach alle Attribute in die Subklasse gepackt.
Doch das erscheint mir unprofessionell.gibts eine bessere Lösung?
-
Ich weiß nicht, ob ich dich richtig verstanden habe. Also, du willst von der Unterklasse aus an Attribute der Elternklasse kommen. Prinzipiell 3 Möglichkeiten:
1. Du machst die Attribute in der Elternklasseprotected. (schlechte Idee)
2. Du packst die Attribute der Elternklasse in die Unterklasse. (schlechte Idee)
3. Du definierst Schnittstellen in der Elternklasse:public: bool is_pressed() const { return ispressed; }
-
kann ich dass const bei allen Attributen machen oder hat das auch nachteile?
-
alterbro schrieb:
kann ich dass const bei allen Attributen machen oder hat das auch nachteile?
Das machst du immer dann, wenn das Attribut innerhalb der Methode nicht verändert wird. Nein, Nachteile hat das natürlich nicht.
-
okay nur noch kurz nachhaken:
das ist wie eine virtuelle funktion, nur muss sie nicht auch noch bei der unterklasse definiert werden?
-
alterbro schrieb:
das ist wie eine virtuelle funktion, nur muss sie nicht auch noch bei der unterklasse definiert werden?
Hä, ich kann dir nicht ganz folgen. Wie kommst du jetzt auf einmal auf
virtual? Eine Funktion ist dannvirtual, wenn dervirtualSpezifier angegeben ist.
-
ja, aber ist doch was ähnliches oder?
man kann von einer unterklasse auf spezifische funktionen der elteren klasse zugreifen.
-
alterbro schrieb:
ja, aber ist doch was ähnliches oder?
Nene, was
virtualbedeutet und warum man es einsetzt, solltest du nochmals nachlesen.
-
ok, danke
-
alterbro schrieb:
ok, danke
Vielleicht ist aber auch dein Design nicht gut, und
virtualmag Sinn machen. Dazu müsstest du aber ein minimals, kompilierbares Codebeispiel zeigen.
-
ja stimmt hast recht hab was falsch verstanden.
danke
-
okay ich weiss das ist etwas spät, aber die atribute sollten über den zeigerarray schon veränderlich sein.
lässt sich das auch irgendwie bewerkstelligen?