Memberfunktion mit Struct als Rückgabe
-
Hallo!
Ich habe eine Klasse, die folgenden Struct enthält:
struct Info{ int art; L4_Word_t Stack; L4_Word_t Heap; L4_Word_t TxtDat; } info;Nun möchte ich eine einfach get-Funktion schreiben, im Header steht Folgendes:
struct Info* getInfo();Die Implementierung sieht wie folgt aus:
struct Info* Space::getInfo(){return &info;}Leider bekomme ich dabei die folgenden Fehlermeldungen:
Header: error: candidate is: Space::Info* Space::getInfo()
Source: error: prototype for ‘Info* Space::getInfo()’ does not match any in class ‘Space’Geht diese Syntax so nicht in Ordnung oder ist am Konzept etwas falsch?
-
Der Typ heißt "Info", nicht "struct Info". Und da der Typ in der Klasse definiert ist, musst du bei der Implementation natürlich auch "Space::Info Space::getInfo().." schreiben. Was allerdings auch unsinnig ist. Denn die getInfo Funktion bringt nur etwas, wenn "info" privat ist. Wenn "info" privat ist, ist es die Strukturdefinition aber auch.
Sinnvoller wäre Deklaration deiner info-Variable und definition deiner Struktur zu trennen:
public:
struct Info {...;private:
Info info;
-
Vielen Dank für die schnelle Antwort! Ich glaube, ich habe C- und C++-Syntax etwas durcheinander geworfen. Es funktioniert jetzt auf jeden Fall.
Gruß,
Grump