Vererbung
-
Gut, nur als Kontext des Kontextes - quasi als Metakontext sollte man wissen dass ich mir der nicht zwangsläufigen Sinnhaftigkeit der ganzen Aktion bewusst bin. Ich mache das nur weil ich mich etwas an C++ gewöhnen möchte und mir nichts wirklich besseres eingefallen ist ;).
Also ich habe zB. eine Klasse die Funktionen für eine Listbox schachteln. (clear, addstring usw.)
Diese Funktionen gibts jetzt einmal statisch (hier muss man ein window handle übergeben) und einmal nicht statisch (hier wird das window handle der Instanz genutzt).
Wenn Du mir jetzt sagst dass ganze ist eh unsinnig es gibt doch die MFC dann hau ich Dich
Edit: Wow - viele Beitrage in 5 Minuten oO^^
-
Dann ruft die nichtstatische Methode die statische mit seinem Handle auf.
-
Die nicht statische Methode hat kein Handle als Parameter, das ist ja der Sinn

-
Nexus:
Laufzeitpolymorphie allein klappt halt nicht für statische Methoden und die virtual-Methoden sind nur ein Beispiel. Die können in dem eigentlich auch nicht-virtual sein, ändert ja nichts. Und ja, ich find das auch overengineered, aber mir fällt sonst auch nichts ein, wenn man sein kaum benanntes Design so behalten möchte...
cooky:
Und wieso soll man überhaupt die Möglichkeit haben über ein Window-Handle, was meinem Verständnis auf einer anderen Abstraktionsebene steht, etwas zu erreichen? Wenn du so eine Schicht aufbaust, würde ich dem Anwender auch gar nicht die Möglichkeit geben, dass er die "normalen" Handles benutzen kann, wo ist denn da der Sinn?
-
cooky451 schrieb:
Die nicht statische Methode hat kein Handle als Parameter, das ist ja der Sinn

class ListBox { public: static void Clear(Handle liste) { /* ..Implementierung.. */ } void Clear() { Clear(handle_); } private: Handle handle_; };
-
Hm.. mir fällt gerade auf dass ich in der statischen Methode einfach eine Temporäre Instanz erstellen und dann die nicht statische Methode aufrufen könnte oO..
-
Welchen Sinn hat das Handle dann?
-
cooky451 schrieb:
Hm.. mir fällt gerade auf dass ich in der statischen Methode einfach eine Temporäre Instanz erstellen und dann die nicht statische Methode aufrufen könnte oO..
Was ist denn daran besses als andersrum (so wie eben gezeigt)??
-
@Eisflamme
Dass man bei öfter genutzten Fenstern auch eine Instanz der Klasse erstellen kann und das Handle nur einmal setzen muss.@brotbernd
Dass man die Konstanten nicht als Parameter übergeben muss.
(Das was Du gezeigt hattest war quasi die Ausgangssituation)
-
Dass man bei öfter genutzten Fenstern auch eine Instanz der Klasse erstellen kann und das Handle nur einmal setzen muss.
Ja, aber wenn das Handle offensichtlich unwichtig ist, weil die Funktion auch mit einem temporär erzeugten Handle durchgeführt werden kann, was soll das Ganze dann?
