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++
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
- Thomas J. Gritzan (29.06.2009 23:59)
- Thomas Thiele (30.06.2009 10:46)
- Thomas J. Gritzan (30.06.2009 15:19)
- Thomas Thiele (30.06.2009 17:45)
- Thomas J. Gritzan (30.06.2009 20:04)
- Thomas Thiele (01.07.2009 11:28)
- Thomas J. Gritzan (06.07.2009 23:22)
- Thomas Thiele (07.07.2009 14:33)
- Thomas J. Gritzan (07.07.2009 16:58)
- Thomas Thiele (08.07.2009 10:53)
- James (30.06.2009 09:27)
- Daniel_Krügler (30.06.2009 08:03)
