Seite 1 von 1

QList: Unterschiedliche Items verwalten (Casts)

Verfasst: 12. Juli 2008 17:26
von KuhTeh
Ich muss in einer QList unterschiedliche (Zeiger) Strukturen verwalten.
Beispiel:

struct A
{
qreal r;
qint8 u;
};

struct B
{
quint16 i;
char c;
};

QList<quintptr*> test;
A* pA= new A;
B* pB= new B;

test.append((quintptr*)pA );
test.append((quintptr*)pB );

test[0](A*)->r= 3.25; // Fehler
test[1]->(B*)i= 11; // auch Fehler

Habe diverse Varianten ausprobiert.
Kann mir jemand auf die Sprünge helfen?

Verfasst: 12. Juli 2008 18:58
von upsala
Wenn dur dir sicher bist, daß in test[0] ein 'A' enthalten ist:

Code: Alles auswählen

A *a=static_cast<A*>(test[0]);
Wenn du nicht weist, welches Element enthalten ist:

Code: Alles auswählen

A *a=dynamic_cast<A*>(test[0]);
Sollte jetzt kein 'A' enthalten sein, wird halt 0 zurückgeliefert.

Re: QList: Unterschiedliche Items verwalten (Casts)

Verfasst: 14. Juli 2008 07:20
von kitov

Re: QList: Unterschiedliche Items verwalten (Casts)

Verfasst: 14. Juli 2008 08:01
von Ginsengelf
kitov hat geschrieben:Versuch es damit

http://www.boost.org/doc/libs/1_35_0/do ... l#id470097
Das müsste doch auch mit QVariant gehen, dann braucht man nicht noch extra boost.

Ginsengelf