ü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";
    }
    

Anmelden zum Antworten