übergabeparameter
-
hallo,
ich habe eine methode mit folgendem aufruf.
ReadItem(const unsigned long Id, const wchar_t*& ItemString) { // ... }das const wchar_t& ItemString* ist der rückgabeparameter der funktion.
was macht genau das *& und wie geb ich den ordentlich zurück.
muss ich da nun einen zeiger auf einen string reinschreiben?oder ist der speicher schon da und ich kann in ItemString schreiben.
-
"const wchar_t*&" ist eine Referenz auf einen Pointer auf "const wchar_t" (um das mal auszuschreiben - den verwendest du wie einen normalen wchar_t-Pointer. Und weil's ne Referenz ist, wirken sich Änderungen dort direkt auf den übergebenen Parameter vom Hauptprogramm aus:
bool ReadItem(unsigned long id,const wchar_t*& ItemString) { static wchar_t* Items[]={L"Item1",L"Item2",...}; static int Item_ct=sizeof(Items)/sizeof(Items[0]); if(id>=Item_ct) ItemString=NULL; else ItemString=Items[id]; return ItemString!=NULL; } int main() { wchar_t* item; int num if(!ReadItem(num,item)) cerr<<"Fehler - kein Item "<<num<<" gefunden.\n"; }