Seite 1 von 1

QSet<typ*> als Funktionsparameter !?

Verfasst: 20. November 2010 14:36
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

Verfasst: 20. November 2010 17:39
von Christian81
QGraphicsItem ist nicht deklariert... also entweder forward declaration oder den Header zu inkludieren.

Verfasst: 20. November 2010 19:52
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 :)

Verfasst: 20. November 2010 20:29
von upsala
So, schön, und jetzt nehmen wir dieses Bildchen aber wieder raus, oder?

Verfasst: 20. November 2010 20:47
von dazedly
Also ich finde das Bild lustig :)

Verfasst: 20. November 2010 21:52
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?

Verfasst: 21. November 2010 11:55
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

Verfasst: 21. November 2010 21:22
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