assign dasselbe wie = ?



  • hallo,

    ist

    str.assign(base);
    

    das gleiche wie

    str = base;
    

    ?

    gruß



  • Hm jo, nur das es bei std::string::assign() eine call-by-reference ist:

    string& assign ( const string& str );
    

    Bei dem Zuweisungsoperator wird der Inhalt nur kopiert.



  • Kóyaánasqatsi schrieb:

    Hm jo, nur das es bei std::string::assign() eine call-by-reference ist:

    string& assign ( const string& str );
    

    Bei dem Zuweisungsoperator wird der Inhalt nur kopiert.

    Das hab ich jetzt nicht verstanden.



  • volkard schrieb:

    Das hab ich jetzt nicht verstanden.

    Was'n?



  • assign bietet dir ein paar Möglichkeiten mehr, als der einfache Zuweisungsoperator. Nachlesen kannst du das hier sehr schön:

    assign :
    http://www.cplusplus.com/reference/string/string/assign/

    operator= :
    http://www.cplusplus.com/reference/string/string/operator=/

    @Kóyaánasqatsi:
    Schau dir mal die Links oben an. Operator= nimmt auch (unter anderem) eine const Referenz.



  • Ach so, dass meint volkard also. Ich bin vom Standard-Zuweisungsoperator ausgegangen. Habe gar nicht an den überladenen gedacht, sorry.



  • Kóyaánasqatsi schrieb:

    Ach so, dass meint volkard also. Ich bin vom Standard-Zuweisungsoperator ausgegangen. Habe gar nicht an den überladenen gedacht, sorry.

    Auch standardgenerierte Zuweisungsoperatoren nehmen eine Const-Referenz.



  • Hallo, danke für die antworten...

    Beispiel:

    header:
    string str;
    konsturktor:
    str = "irgendwas";
    Funktion:
    void test()
    {  string in_funktion = "string in Funktion";
       str.assign(in_funktion);
    }
    

    jetzt ist string eine referenz von in_funktion oder?
    aber in_funktion ist ja nach der funktion nicht mehr vorhanden...
    Sorry, wenn ich so dumm frage, bin noch nciht sehr weit in cpp



  • Sorry, hier nochmal:

    Beispiel:

    header:
    string str;
    //konsturktor:
    str = "irgendwas";
    //Funktion:
    void test()
    {  string in_funktion = "string in Funktion";
       str.assign(in_funktion);
    }
    

    jetzt ist str eine referenz von in_funktion oder?
    aber in_funktion ist ja nach der funktion test nicht mehr vorhanden...
    Sorry, wenn ich so dumm frage, bin noch nicht sehr weit in cpp



  • stringg schrieb:

    header:
    string str;
    //konsturktor:
    str = "irgendwas";
    

    Bitte was?!

    stringg schrieb:

    //Funktion:
    void test()
    {  string in_funktion = "string in Funktion";
       str.assign(in_funktion);
    }
    

    jetzt ist str eine referenz von in_funktion oder?

    Du kannst Dir eine std::string -Variable wie eine int - oder auch double -Variable vorstellen. Nur anstatt Ganzzahlen oder Fließkommazahlen zu speichern, werden Zeichenkette gespeichert.

    Deine Funktion lässt sich so abkürzen:

    void test()
    {
       str = "string in Funktion";
    }
    

    Es kommt aufs Gleiche hinaus.

    stringg schrieb:

    aber in_funktion ist ja nach der funktion test nicht mehr vorhanden...

    Ja und?

    Gruß,
    SP


Log in to reply