"CString" oder "CString*"



  • mir fehlt wiedermal etwas Grundwissen. Vielleicht kann einer von Euch das Problemchen lösen...

    a) wenn man Parameter in Methoden übergeben möchte, wie geht man vor?
    Übergibt man CString oder CString* ? Normalerweise sollte man ja Adressen übergeben.
    Kann es sein daß CString genauso groß wie CString* ist (4 Bytes)???

    b) wenn man nun CString* übergibt, wie spricht man dann die Variable an?
    z.B. mit AfxMessageBox(text[0]); ?

    Danke.



  • Es kommt immer auf die Funktion/Methode an. Wenn ein CString gefordert ist, dann musst du auch einen solchen angeben. Wenn die Funktion einen CString* will, dann übergibst du eben einen CString-Pointer. So läuft C++. Ich rate dir, dir mal ein C++-Tutorial durchzulesen, z.B. Volkards C++-Kurs.

    Zu b)

    void MyFunction(CString* str)
    {
       CString c_string = *str;
       // Jetzt steht alles in c_string.
    }
    


  • Original erstellt von <Fragender>:
    a) wenn man Parameter in Methoden übergeben möchte, wie geht man vor?
    Übergibt man CString oder CString
    ? Normalerweise sollte man ja Adressen übergeben.
    Kann es sein daß CString genauso groß wie CString
    ist (4 Bytes)???
    **

    Am besten CString*(Zeiger)!

    Original erstellt von <Fragender>:
    *b) wenn man nun CString übergibt, wie spricht man dann die Variable an?
    z.B. mit AfxMessageBox(text[0]); ?
    **

    Am einfachsten in der Funktion z.B. void Funktion(CString* strText)
    Dann kannst du einfach mit strText->Funktion_Deiner_Wahl();
    darauf zugreifen!



  • Danke,
    ich sollte mal wirklich ein Tutorial lesen...



  • muss man beim Funktions aufruf nicht auch den Adress Operator & nutzen ??

    void MyFunction(CString* str)
    {
       CString c_string = *str;
       // Jetzt steht alles in c_string.
    }
    CString Test= "HALLO";
    MyFunction(&TEST);
    

    Bitte verbessern wenn ich mich Täusche...



  • Richtig. 🙂


Log in to reply