[Sloved]QList als Funktionsrückgabe

Verschiedenes zu Qt
Antworten
jd
Beiträge: 130
Registriert: 22. Januar 2008 17:55

[Sloved]QList als Funktionsrückgabe

Beitrag von jd »

Hallo Gemeinde, ich habe ein Problem, mit einem "selbst definierten" Rückgabewert. Das Problem wird sich vermutlich auf C++ belaufen und nicht direkt auf Qt, aber eventuell kann mir trotzdem einer helfen.

Header

Code: Alles auswählen

class CDiskSpace : public QObject{
	public:
		CDiskSpace();
		~CDiskSpace();

		typedef struct {
			QString filesystem;
			QString size;
			QString available;
			QString used;
			QString usedPercent;
			QString mountPoint;
		} SHardDrive;

		QList<SHardDrive*> disk;
		SHardDrive *hdd;

		QList<SHardDrive*> parseMountPoints( QString data );
};
Source

Code: Alles auswählen

QList<SHardDrive*> CDiskSpace::parseMountPoints( QString data ) {
    hdd = new SHardDrive;
    disk.append(hdd);
    return disk;
}
Mein Compiler gibt auch Fehlermeldungen aus, die ich leider nicht verstehe.
src/diskspace/diskspace.cpp:26: error: ‘SHardDrive’ was not declared in this scope
src/diskspace/diskspace.cpp:26: error: template argument 1 is invalid
src/diskspace/diskspace.cpp:26: error: prototype for ‘int CDiskSpace::parseMountPoints(QString)’ does not match any in class ‘CDiskSpace’
src/diskspace/diskspace.h:23: error: candidate is: QList<CDiskSpace::SHardDrive*> CDiskSpace::parseMountPoints(QString)
src/diskspace/diskspace.cpp:26: error: ‘int CDiskSpace::parseMountPoints(QString)’ cannot be overloaded
src/diskspace/diskspace.h:23: error: with ‘QList<CDiskSpace::SHardDrive*> CDiskSpace::parseMountPoints(QString)’
src/diskspace/diskspace.cpp: In member function ‘int CDiskSpace::parseMountPoints(QString)’:
src/diskspace/diskspace.cpp:30: error: cannot convert ‘QList<CDiskSpace::SHardDrive*>’ to ‘int’ in return
src/diskspace/diskspace.cpp: At global scope:
Hat da jemand eine Idee wie ich den Fehler beheben könnte? Liegt das an meiner Struktur, oder ist das ein QList Problem, oder übersehe ich da einfach nur einen wichtigen Aspekt?

so long

jd
Zuletzt geändert von jd am 16. April 2008 10:28, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was ist an

Code: Alles auswählen

src/diskspace/diskspace.cpp:26: error: prototype for ‘int CDiskSpace::parseMountPoints(QString)’ does not match any in class ‘CDiskSpace’ 
nicht zu verstehen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
jd
Beiträge: 130
Registriert: 22. Januar 2008 17:55

Beitrag von jd »

Die Funktion int CDiskSpace::parseMountPoints(QString) gibt es nicht und sollte es auch nicht geben. Ich verstehe die Fehlermeldung nicht weil ich nicht weiß wie der Compiler auf int CDiskSpace::parseMountPoints(QString) kommt.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Du bist an der Stelle nicht im CHardDrive - Namespace, also auch kein SHardDrive. Auch das sagt Dir der Compiler - gleich als erstes.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
jd
Beiträge: 130
Registriert: 22. Januar 2008 17:55

Beitrag von jd »

Ok, das verstehe ich, ich habe die Header-Datei umgeschrieben:

Header:

Code: Alles auswählen

typedef struct {
	QString filesystem;
	QString size;
	QString available;
	QString used;
	QString usedPercent;
	QString mountPoint;
} SHardDrive;

class CDiskSpace : public QObject{
	public:
		CDiskSpace();
		~CDiskSpace();

		QList<SHardDrive*> disk;
		SHardDrive *hdd;
		QList<SHardDrive*> parseMountPoints( QString data );
};
Das funktioniert auch, jedoch habe ich die Struktur nun global gemacht, ist das die ein zigste Möglichkeit?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Nein, das ist nicht die einzigste Möglichkeit.

Was mache ich wenn der Namespace gerade nicht aktiv ist, ich aber trotzdem drauf zugreifen will? Das ist basic c++ und hat nichts mit Qt zu tun :(

CDiskSpace::SHardDrive
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
jd
Beiträge: 130
Registriert: 22. Januar 2008 17:55

Beitrag von jd »

Aber natürlich, tut mir Leid die letzte Frage war überflüssig... Hänge einfach schon zu lange davor...
Antworten