Seite 1 von 1

Polymorphismus mit QList<T*>?

Verfasst: 10. Oktober 2013 21:13
von hilefoks
Moin,

ich habe eine Basisklasse A und diverse davon abgeleitete Klassen (B,C,...). Ich möchte nun eine allgemeine Methode implementieren, die eine Liste vom Typ QList<A*> übernimmt und irgendwas damit macht:

Code: Alles auswählen

void doIt(const QList<A*> &list) { ... }
Was ist der einfachste, kürzeste, schönste Weg, dieser Methode jetzt eine Liste mit B Instanzen zu übergeben, also:

Code: Alles auswählen

QList<B*> list = getMyListOfB();
doIt( list );
Das geht natürlich so einfach leider nicht. Aber wie geht es am besten? Wäre ein reinterpret_cast sicher?

MfG,
Hilefoks

Re: Polymorphismus mit QList<T*>?

Verfasst: 11. Oktober 2013 23:53
von Christian81
Nur mit templates, reinterpret cast geht ggf. auch aber würde ich designtechnisch nicht machen.

Re: Polymorphismus mit QList<T*>?

Verfasst: 14. Oktober 2013 20:50
von hilefoks
Danke Christian. Natürlich sollte ich Templates verwenden. Sorry - irgendwie hatte ich einen ziemlichen Knoten im Kopf!