const in Funktionen



  • Hallo Leute,

    ich habe eine frage zu 'const' in Funktionsdeklarationen (in klassen)

    und zwar heist folgendes:

    void zeige() const;
    

    dass das objekt nicht verändert werden kann

    void const foo();
    

    heist das dasselbe oder wie?
    das ist mir nämlich jetzt letztens in der operatoren überladung aufgefallen...

    mfg mosho³



  • Skym0sh0 schrieb:

    [ccp]
    void const foo();
    [/cpp]

    heist das dasselbe oder wie?
    das ist mir nämlich jetzt letztens in der operatoren überladung aufgefallen...

    Nein, dieses const bezieht sich auf den Rückgabewert.

    const void macht aber nicht wirklich Sinn, ich weiß gar nicht, ob das überhaupt erlaubt ist. Du würdest eher sowas in der Art sehen:

    const int* foo();
    


  • ja ich wusste nicht wodrauf sichd as const bezieht

    klar wenn es sich auf den rückgabe wert bezeiht macht das klar kein sinn

    also

    rückgabetyp foo() const;
    

    bezieht sich auf das objekt
    und

    rückgabetyp const foo();
    

    bezieht auf den rückgabe wert?



  • Ja.
    Wobei du für den Rückgabewert genau so (sinnlos) schreiben könntest:

    const rückgabetyp foo();
    

Anmelden zum Antworten