1 große Klasse. Oder doch viele kleinere??
-
Ich gluabe ihr sprecht hier über etwas was 'Gen.d.Pz.Tr.Seb' garnicht hat.
@Gen.d.Pz.Tr.Seb:
Du hast einen großen Fehler gemacht. Du hast UI nicht von Funktion getrennt.
Hier kommt es jetzt darauf an was dein Programm machen soll. z.B. gehört eine Datenbankabfrage nicht in die UI-Klasse. Berechnungen gehören da nicht rein, etc.
-
Ich habe eben leider alles in einer monster Klasse gehabt. Jetzt hab ihc eh die Arbeit und zersplitte diese so wie du es meinst bzw. wie es wohl alle andren vor dir auch gemeint haben.
Mal eine allgemeine Frage (will jetzt aber nicht ind c++ forum gehen, und suchen geht nicht mehr (so weit ich weis));
Ich habe jetzt 4 Klassen; TRichEditUtilities, TEingabefeldUtilities, TListViewUtilities und TUtilities. Wie kann jetzt Utilities alles erben von den andren drei Klassen??
Geht das irgendwie auf einmal?
Oder muss zuerst TEingabefeldUtilities von TRichEditUtilities erben, dann ListViewUtilities, TEingabefeldUtilities erben und zuletzt TUtilities TListViewUtilities erben?? (Und jede Klasse fügt dann eben 'ihren code' dazu)
-
Gen.d.Pz.Tr.Seb schrieb:
Ich habe jetzt 4 Klassen; TRichEditUtilities, TEingabefeldUtilities, TListViewUtilities und TUtilities. Wie kann jetzt Utilities alles erben von den andren drei Klassen??
Geht das irgendwie auf einmal?
Oder muss zuerst TEingabefeldUtilities von TRichEditUtilities erben, dann ListViewUtilities, TEingabefeldUtilities erben und zuletzt TUtilities TListViewUtilities erben?? (Und jede Klasse fügt dann eben 'ihren code' dazu)Vererbung macht man da, wo eine "ist ein"-Beziehung vorliegt, also da, wo eine Klasse eine Spezialisierung einer anderen Klasse ist. Das läßt sich hier schonmal überhaupt nicht mit deiner Namensgebung vereinen. "TUtilities" ist ein "allgemeinerer" Name als die anderen 3. Insofern ist entweder die Namensgebung falsch oder es ist keine Vererbung angebracht.
Mehrfachvererbung, wie du sie da gerne hättest, ist mit C++ möglich. Allerdings kommt es mir so vor, als ob du dir bei dieser "Vererbungsfrage" die Frage stellst, was du gerne in einer bestimmten Klasse hättest. Du solltest dich aber eher fragen, was eine bestimmte Klasse ist. Wenn du Vererbung falsch anwendest, dann wird es schwer, die Struktur deines Programms zu verstehen. Wenn es also nur darum geht, bestimmte Funktionalitäten in eine Klasse zu bringen, dann ist vielleicht ein anderes Design angebracht. Es gibt da genug Möglichkeiten.
Wenn hier TUtilities eine Spezialisierung der anderen Klassen sind, solltest du dir überlegen, ob die anderen Klassen untereinander vielleicht auch Spezialisierung von einander sind. In diesem Fall ist keine Mehrfachvererbung angebracht, sondern die zweite Variante, die du oben schon ansprichst.
Vielleicht haben deine Klassen ja auch nur eine Gemeinsamkeit, die in einer abstrakten Superklasse zu finden ist, die du noch garnicht geschrieben hast. In diesen Fall sind parallele Vererbungslinien angebracht.
-
TUtilities hört sich für mich nicht nach einer Klasse an. Falls es nur Hilfsfunktionen ohne Membervariablen sind, würde ich daraus einen namespace machen.