const vor der funktion



  • hi was bewirkt denn das const vor dem funktionsnamen???

    z.b const std::string test(....)
    {....
    }

    Kann mir zusätzlich jemand noch sagen wann man ne referenz als rückgabeparameter benutzt!?

    z.b int& test2();

    MfG dohan



  • Das const verhinder das jemand sowas macht:

    string foo();

    foo() = "Hallo Welt";

    (denk ich jetzt mal)



  • hmm wenn du als Rückgabewert eine Referenz machst, dann müsste das Kaufmannsund doch aber vor den Datentyp und nicht dahinter oder irre ich mich???



  • hmm wenn du als Rückgabewert eine Referenz machst, dann müsste das Kaufmannsund doch aber vor den Datentyp und nicht dahinter oder irre ich mich???

    Du irrst dich.

    hi was bewirkt denn das const vor dem funktionsnamen???

    Das const steht nicht vor dem Funktionsnamen, sondern steht vor dem Datentyp der zurückgegeben wird und das bedeutet der Aufrufer der Funktion kann nur konstante Methoden des Datentyps aufrufen.



  • Original erstellt von KPC:
    **[quote]
    Du irrst dich.
    **

    Heisst das also mann muss beim erstellen einer Referenz das & vor den Namen des Objektes machen und beim Zurückgeben halt einfach dahinter ??



  • @kpc kannst du mal mir das bitte mit dem const an nem kleinen beispiel nen wenig verdeutlichen...



  • const string und string const sind equivalent

    und hier ein bsp: http://cplus.kompf.de/artikel/const.html



  • Original erstellt von Peter Piksa:
    Heisst das also mann muss beim erstellen einer Referenz das & vor den Namen des Objektes machen und beim Zurückgeben halt einfach dahinter ??

    Du musst es immer hinter den Typ stellen:

    string & Gibstringreferenzzuruck(); //Die Funktion gibt einen Referenz auf einen string zurück
    
    string s = "hallo";
    string & s2 = s; //s2 ist eine Referenz auf s
    //Das & steht immer hinter dem Typ, egal ob man eine einfache Variable erstellt oder ob die Referenz von einer Funktion zurückgegeben wird.
    


  • Danke KPC 🙂



  • hi, in dem beispiel ist es ein const char* macht denn ein const int etc überhauptsinn!?
    mfg dohan


Log in to reply