string?



  • Hallo!

    Wahrscheinlich bin ich der einzige Hinterwäldler der das erst jetzt festgestellt hat, nämlich das ich bei der Benutzung von string kein #include<string> benötige. Ich hatte mal im Buch gelesen das man um die Funktionen benutzen zu können string einbinden muss.
    Das einzige wozu es sich lohnt string einzubinden scheint mir bei der ausgabe per cout, wodurch man das .c_str() weglassen kann.

    Meine Frage, wozu ist string jetzt gut, wenn ich strings auch ohne das Einbinden von string benutzen kann?

    Code-Hacker



  • Du wirst #include string immer brauchen wenn Du std::string verwendest. Jedoch werden manche andere Header die Du einsetzt bereits string includieren.

    Wenn der Code Portabel sein soll wirst Du um ein #include <string> nicht umherkommen. (Kann sein das manche Compilerbauer da ihre eigene Suppe köcheln.)



  • Axso, danke!
    Ich dachte schon string wäre überflüssig geworden, weil es scheinbar schon in iostream oder im namespace std enthalten ist.

    Code-Hacker



  • <string> wird in <iostream> bereits eingebunden, ja.



  • Cocaine schrieb:

    <string> wird in <iostream> bereits eingebunden, ja.

    nicht zwangsläufig!



  • Gut, in seinem Fall aber schon. D.h. dann wohl, daß er die <string> auch inkludieren sollte, wenn er portabel sein will... (?)



  • Man sollte sich nie darauf verlassen, daß andere Header für einen was includen.
    Wenn man sich nicht selber darum kümmert, bekommt man spätestens bei einem andren Compiler Probleme.



  • Cocaine schrieb:

    D.h. dann wohl, daß er die <string> auch inkludieren sollte, wenn er portabel sein will... (?)

    exakt. Siehe Effective STL Item 48 Always #include the proper headers



  • Siehe Effective STL Item 48 Always #include the proper headers

    Natürlich hat Cocaine das Buch grade da und schlägt jetzt nach.



  • Natürlich hat Cocaine das Buch grade da und schlägt jetzt nach.

    Selbst wenn er das Buch nicht zur Hand hat.
    Erstens sagt der Titel des Items bereits eine ganze Menge und zweitens ist es doch immer gut von Quellen zu wissen, in denen man bei Bedarf/Interesse weiter nachlesen kann. Wenn es sich dann auch noch um ein Buch eines in der C++ Community äußerst anerkannter Autors handelt, die Chancen, dass eine öffentliche Bibliothek ein solches Buch hat also ziemlich gut sind, umso besser.

    Ich verstehe ehrlich gesagt dein Problem nicht. Oder bist du der Meinung, man sollte generell auf die Angabe von Referenzen verzichten aus Rücksicht auf Leute, die die referenzierte Quelle nicht zur Hand haben?



  • Vermutlich ist es mein kaputtes Sprachverständniss. Durch das "siehe" wird bei mir hier impliziert, das ich es machen soll, wozu ich es natürlich besitzen muss bzw. jemanden oder ein Institut kennen muss, von bzw. bei dem ich es mir besorge.



  • was muss ich includieren damit ich einen string nutzen kann 😕
    wenn ich einfach nur schreibe:

    int main(void)
    {
    string i;
    return 0;
    }

    zeit er mir bei string nen Fehler!!!



  • richard240291 schrieb:

    was muss ich includieren damit ich einen string nutzen kann 😕
    wenn ich einfach nur schreibe:

    int main(void)
    {
    string i;
    return 0;
    }

    zeit er mir bei string nen Fehler!!!

    NEIN ECHT=!=!=?!?!?!!?!111111111111111111111


Anmelden zum Antworten