Wieso funktioniert die Klasse string so einfach?



  • Moin Leute,

    ich habe eine Frage zur Funktion der Klasse "string". Und zwar wundere ich mich darüber wie unproblematisch diese Klasse einen String ausgeben kann (Ja, wirklich!). Ich würde dieses Verhalten gerne nachbauen.

    Zur Veranschaulichung...

    string * myString = new string("bla");
    
    cout << myString.length() << endl;    // ok, kann ich nachbauen
    cout << myString << endl;   // kann ich nicht nachbauen; wie geht das?
    

    Und jetzt mein eigenes Objekt...

    someObject * myObject = new someObject("blub");
    
    cout << myObject.someMethod() << endl;
    cout << myObject << endl;    // hier soll ein String ausgegeben werden
    


  • Ja, du mußt den <<-Operator überladen.

    std::ostream& operator<<(std::ostream& out, const someObject& object)
    {
        out << someObject.someMethod();
        return out;
    }
    


  • ahh, hätt' ich mir denken können

    danke



  • goran schrieb:

    ...

    string * myString = new string("bla");
    ...
    someObject * myObject = new someObject("blub");
    ...
    

    =>

    string myString("bla");
    ...
    someObject myObject("blub");
    ...
    

    Gruß,

    Simon2.


Anmelden zum Antworten