UpdateData von aufrufender Klasse
-
Hi,
ich habe eine eigene Klasse geschrieben. Diese soll jetzt Daten in
der aufrufenden Klasse ändern, also ein CEdit befüllen. Das klappt
eigentlich auch ganz gut. im Konstruktor der neuen Klasse lasse ich einen Zeiger
auf CDialog übergeben. Wenn ich den Zeiger dann zu meiner aufrufenden Dialogklasse caste, dann kann ich auf alle Objekte zugreifen, also auch
UpdateData ausführen.Allerdings muss ich dafür die aufzurufende Klasse jedesmal "von Hand" ändern,
also den cast. Kann ich es auch hinbekommen (mit übergabe eines Zeigers) direkt
auf die Methoden der aufrufenden Klasse zuzugreifen, also egal von wo? Ich würd gern die ID des CEdit übergeben das geändert werden soll.also:
CMyClass test(this); test.update();update soll dabei aber zum Beispiel das UpdateData der aufrufenden Klasse ausführen.
Hat das nun wer verstanden? und geht das?

thx schonmal..
tobi
-
Mach doch eine vituelle Funktion. Da wird immer die passende aufgerufen.
Du brauchst:
Eine Basisklasse mit der Funktion, abgeleitet von CDialog.Dann leitest du deine Dialogklassen von der statt CDialog ab und baust die Funktion ein.
Fertig!

Verstanden?
-
Wow, das ging ja schnell

hmm wär eine Idee. Nur dann müsste ich ja die Virtuelle Klasse
überall mit "zwischenschalten". Da hier aber schon ein komplettes
Framework besteht und mein Dialog nur als DLL zur Laufzeit hinzugelinkt wird
ist das schlecht machbar.
Es geht darum das ich mit CAsyncSocket arbeite und halt möglichst einfach
für jeden anderen die Funktionalität meiner Klasse zur Verfügung stellen möchte (ist nen rudimentärer Telnet-Client).daher wär es mit ner virtuellen Klasse ziemlich umständlich einzubauen, glaub ich. Andererseits könnte ich mich damit dann mal beschäftigen *g*.
gibt es noch ne andere Möglichkeit? Aber ich versuch mich erstmal bischen mit virtuellen Methoden in der praxis (hab ich bisher immer nur gelesen
)mfg
tobi
-
Hmm,
also ich habe daran nochmaln bischen rumgefummelt

momentan hab ich jetzt erst bei der Übergabe einen upcast auf CDialog und dann in der aufgerufenen Klasse wieder einen Downcast auf die aufrufende Klasse. Dynamisch geht das ganz jetzt aber immer noch nicht. Da die aufgerufene Klasse die aufrufende ja nicht kennt (ohne das Headerfile einzubinden). Ich hatte jetzt den Klassennamen noch mit übergeben. Aber ohne Header-Files bringt mir das ja auch nix

impossible?
