Polymorphismus mit QList<T*>?

Alles rund um die Programmierung mit Qt
Antworten
hilefoks
Beiträge: 144
Registriert: 13. März 2008 16:09

Polymorphismus mit QList<T*>?

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Polymorphismus mit QList<T*>?

Beitrag von Christian81 »

Nur mit templates, reinterpret cast geht ggf. auch aber würde ich designtechnisch nicht machen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
hilefoks
Beiträge: 144
Registriert: 13. März 2008 16:09

Re: Polymorphismus mit QList<T*>?

Beitrag von hilefoks »

Danke Christian. Natürlich sollte ich Templates verwenden. Sorry - irgendwie hatte ich einen ziemlichen Knoten im Kopf!
Antworten