nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Polymorphismus und Rückgabewerte

Von: David Pritzkau (pseudotetrade007@web.de) [Profil]
Datum: 29.06.2009 20:58
Message-ID: <7ash5rF20icngU1@mid.dfncis.de>
Newsgroup: de.comp.lang.iso-c++
Hallo!

Ich habe zwei Klassen- die eine hat von der anderen geerbt. Jetzt suche
ich nach einer Möglichkeit eine Funktion zu programmieren, die als
Rückgabewert die Elternklasse besitzt, jedoch so, dass ich diese aus dem
Aufrufenden Code mit einem Typecast in die andere umwandeln kann, wenn
es sich denn um diese handelt. Hierzu ein kleiner Pseudocode zum
Verständnis:

class A {};
class B : public A {};

A' myFunction() {        // Pseudocode - geht so natürlich nicht
if (today == Sonnig)
return A();          // auch das geht so natürlich nicht
else
return B();          // soll veranschaulichen, dass mal A
// und mal B zurückgegeben wird
}

// irgendwo im Programm:
A* a = myFunction();
cout << a->someMember();
B* b = dynamic_cast<B*>a;
if (b)
cout << b->someOtherMember();

Vielleicht habe ich ein Brett vorm Kopf - wie macht man sowas?

Grüße!

[ Auf dieses Posting antworten ]

Antworten