000
14.12.2006, 10:42 Uhr
Soto
|
Hallo allerseits,
nehmen wir mal an, es gibt drei Klassen A, B und C. A ist abstrakt, B erbt von A und C erbt wiederum von B.
Nun sollen Objekte der Klassen B und C verwaltet werden. Dazu wird ein Zeiger auf Objekte von A verwendet.
Von diesen Objekten soll nun eine Methode do_something() aufgerufen werden, die in B, aber nicht in A steht.
Daher wird der Zeiger auf (B*) gecastet.
C++: |
(*(B*)R).do_something()
|
Also soweit sollte es gehen.
Nun meine Frage: Angenommen, diese Methode do_something() ist in der Klasse C überschrieben worden und greift auf Elemente zu, die nur in C stehen. Funktioniert es dann, diese Methode über einen Zeiger auf B-Objekte aufzurufen? Das sollte problemlos gehen, oder? Oder muss ich noch extra für C-Objekte den Zeiger nach C* casten?
Ich kann gerne noch ein Beispielprogramm posten, falls noch nicht klar ist, was ich meine. -- ich versuche zu helfen, sorry wenn ich nen scheiß rede ^^ |