QSet<typ*> als Funktionsparameter !?

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

QSet<typ*> als Funktionsparameter !?

Beitrag von skeemo »

Hallo zusammen,

ich stehe vor einem etwas komischen Problem...

Ich habe ein QSet mit QGraphicsItem-Pointern.

Das bekomme ich aus einer Klasse so :

Code: Alles auswählen

QSet<QGraphicsItem*> set = Klasse::getSceneItems();
Die Methode getSceneItems ist wie folgt realisiert :

Code: Alles auswählen

// Prototyp
QSet<QGraphicsItem*> getSceneItems();
.
.
// Implementierung
QSet<QGraphicsItem*> Klasse::getSceneItems()
{

    return itemSet;   // in itemSet werden die itemPointer immer reingehangen.
}

Dann kann ich wunderbar mit dem Set arbeiten z.B. mit foreach drüber iterieren ala:

Code: Alles auswählen

QGraphicsItem* item;
foreach(item, set)
{
...// do some with each item.
}
Jetzt möchte ich diese Funktionalität aber in eine weitere Klasse auslagern, deren einer Methode genau dieses Set nun übergeben bekommt, um dann halt eigentlich genau das selbe damit zu tun (über jedes Item iterieren)..

Code: Alles auswählen

Zeile#
21     QString Parser::parseGraphicsViewToString(QSet<QGraphicsItem*>items)
        {
         .
         .

32         QGraphicsItem* item;
            foreach(item, items)
           {
              ...
            }
         }
Mein Aufruf dieser Methode wäre dann so:

Code: Alles auswählen


QSet<QGraphicsItem*> set = Klasse::getSceneItems();
QString string = parser->parseGraphicsViewToString(set);

Das geht aber leider nicht, und ich kapiere NULL warum....

Beim Compilen gibts folgende Fehler (Zeilennummern siehe oben):
..\SingletonParser.cpp: In member function 'QString SingletonParser::parseGraphicsViewToString(QSet<QGraphicsItem*>)':

..\SingletonParser.cpp:21: error: 'items' has incomplete type

d:\Programme\Development\QT\qt\include/QtCore/../../src/corelib/tools/qlist.h:65: error: declaration of 'struct QSet<QGraphicsItem*>'

..\SingletonParser.cpp:32: error: template argument 1 is invalid

..\SingletonParser.cpp:32: error: invalid type in declaration before '(' token

..\SingletonParser.cpp:32: error: request for member 'brk' in '_container_', which is of non-class type 'int'

..\SingletonParser.cpp:32: error: request for member 'i' in '_container_', which is of non-class type 'int'

..\SingletonParser.cpp:32: error: request for member 'e' in '_container_', which is of non-class type 'int'

..\SingletonParser.cpp:32: error: request for member 'brk' in '_container_', which is of non-class type 'int'

..\SingletonParser.cpp:32: error: request for member 'i' in '_container_', which is of non-class type 'int'

..\SingletonParser.cpp:32: error: request for member 'i' in '_container_', which is of non-class type 'int'

..\SingletonParser.cpp:32: error: request for member 'brk' in '_container_', which is of non-class type 'int'

Ich weiss überhaupt nicht was ich machen soll :(

Hoffe jemand hat eine Idee :)

Danke und Gruß

Chris
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

QGraphicsItem ist nicht deklariert... also entweder forward declaration oder den Header zu inkludieren.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Beitrag von skeemo »

Oh Gott... So viele Hände ,wie ich jetzt gerne gegen meinen Stirn schlagen würde, hab ich gar nicht. Lol
Bild



Danke :)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

So, schön, und jetzt nehmen wir dieses Bildchen aber wieder raus, oder?
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Beitrag von dazedly »

Also ich finde das Bild lustig :)
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Beitrag von skeemo »

upsala hat geschrieben:So, schön, und jetzt nehmen wir dieses Bildchen aber wieder raus, oder?
Warum? Gegen welche Regel verstösst es?
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

skeemo hat geschrieben: Warum?
Weil:
- das Bild beim Lesen des Threads stört
- es zum Problem nichts beiträgt
- wenn das jeder machen würde, es hier wie bei 4chan aussehen würde :x
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Beitrag von skeemo »

1. Das Problem ist gelöst - der Thread kann gerne geschlossen werden.

2. Inklusive diesem Beitrag sind 5 überflüssige Beiträge hier, die sich noch viel weniger mit dem Problem beschäftigen, als das gepostete Bild, welches übrigens einen recht runden Abschluss des Threads dargestellt hätte. Und dabei kaum beim Lesen gestört hätte.

3. Ich bin in vielen Foren unterwegs, aber so wurde ich noch nirgendwo empfangen...

Also, irgendein Mod, bitte den Thread schliessen :) Danke
Antworten