Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Funktionen einer Klasse aufrufen typunabhängig

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.07.2003, 15:07 Uhr
~Otingocni
Gast


Hallo!

Ich habe foilgendes Problem:

Ein TreeView in dem einige Objekte angezeigt werden. Jedes Objekt basiert auf einer anderen Klasse. Allerdings stammen diese Klassen alle von ein und der selben Klasse ab. Nun möchte ich, wenn man die rechte Maustaste im TreeView drückt, daß zum richtigen Objekt jeweils das passende Kontextmenu angezeigt wird. Dazu besitzt jede Klasse eine Funktion "void ShowMenu()". Ich kann nun als lParam eines jeden Items des TreeView einen long-Wert speichern (z.B. Zeiger auf die entsprechende Klasse, Zeiger auf die Funktion ShowMenu der Klasse (funktioniert nicht)). Aber wie kann ich nun ohne zu wissen um welche Vererbung der Basisklasse es sich handelt die richtige Funktion aufrufen:

Ich habe die Basisklasse CBasis
und einige davon abstammende Klassen CClass1, CClass2, CClass3.
Ich möchte jetzt nicht schreiben müssen
(CClass1*) lParam->ShowMenu();
denn ich weiß ja nicht, ob es sich wirklich um CClass1 oder aber CClass2 handelt.

Ist dies irgendwie möglich.
Ich hoffe ich hab mich verständlich machen können.

Vielen Dank für Eure/Ihre Mühe.

Stephan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.07.2003, 15:34 Uhr
0xdeadbeef
Gott
(Operator)


Deklarier die Methode als

C++:
virtual void ShowMenu();


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.07.2003, 15:44 Uhr
~Otingocni
Gast


Hey, super, danke!

Es scheint zu funktionieren. Allerdings werde ich mich jetzt nochmal genauer mit virtuellen Funktionen beschäftigen, ich scheine ihre Fähigkeiten unterschätz und sie auch noch nicht richtig verstanden zu haben.

Vielen Dank nochmal.

Stephan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: