QList: Unterschiedliche Items verwalten (Casts)

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
KuhTeh
Beiträge: 4
Registriert: 3. April 2008 18:21

QList: Unterschiedliche Items verwalten (Casts)

Beitrag 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?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
Ginsengelf
Beiträge: 79
Registriert: 2. Mai 2007 10:21

Re: QList: Unterschiedliche Items verwalten (Casts)

Beitrag 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
Antworten