Frage zu Funktionsaufruf mit Rückgabewert *&

C4rter

Mitglied
Habe eine Frage zu einem Funktionsaufruf. Jahrelange PHP-Entwicklung hat mein C++ wissen irgendwie abgestumpft.
Ich benutze eine API, die ist so instantiiere:
Code:
CSettings settings("Pfad");
Dann erstellte ich noch einen Vector:
Code:
vector<CSettings::SGroup> vecSGroups;
Und dann rufe ich die Methode auf:
Code:
vecSGroups = settings.GetGroups();

Allerdings ist die Methode in der .h so deklariert:
Code:
const vector<SGroup>* GetGroups() const { return &m_vecGroups; };
m_vecGroups ist ein Vektor
SGroup ist ein struct

Wie muss ich die Methode nun aufrufen, damit ich den Vector zurückbekomme.
Wenn ich das "*" und das "&" entferne, würde es gehen, aber das ist ja nicht der Sinn.
 
Hi.

Die Methode gibt dir einen konstanten Zeiger auf den internen Vektor zurück. Also:
C++:
const vector<CSettings::SGroup>* v = settings.GetGroups();
Oder im kommenden C++ Standard:
C++:
auto v = settings.GetGroups(); // c++0x
\edit: falls du den Vektor tatsächlich kopieren willst:
C++:
vector<CSettings::SGroup> vecSGroups(*settings.GetGroups());
Gruß
 
Zurück