const Rückgabewert Funktion

ibafluss

Erfahrenes Mitglied
Hey Leute!

Was bedeutet es, wenn ein const als Rückgabewert einer Funktion steht? Ich habe im Internet schon gelesen, dass dan der Rückgabewert nicht veränderbar ist, jedoch bekomme ich hier weder eine Fehlermeldung, noch eine Warnung, dass das const bei der Zuweisung gestrichen wird:

C++:
#include <iostream>

using namespace std;

const int func (int a)
{
    int b = a+2;

    return b;
}

int main()
{
    int b;
    int a = 5;

    b = func (a);
    b = 2;

    cout << b;
}

P.S.: Wie füge ich cpp-Code ein? Wenn ich auf code einfügen klicke, kommt nicht der cpp-Code.
 
Zuletzt bearbeitet von einem Moderator:
Hallo, ich bin mir nicht ganz sicher, aber ich glaube das du bei return nichts mit der Variable machen kannst.
 
Hi.
Was bedeutet es, wenn ein const als Rückgabewert einer Funktion steht?
Eigentlich ist es unsinnig bei primitiven Datentypen den Rückgabewert als const zu kennzeichnen. Es hat keine Wirkung, da der Rückgabewert kopiert wird und sich als solcher auch nicht auf eine Speicherstelle bezieht die konstant sein könnte. (anders verhält es sich natürlich bei Zeigern bzw. Referenzen die auf konstante Werte zeigen / referenzieren können)

Im Grunde könntest du auch schreiben:
C++:
const int a = 5;
int b = a; // OK. Warum auch nicht?

Mit der Option -Wextra erhalte ich für deinen Code vom g++ folgende Meldung:
Code:
constret.cpp:5:22: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
Gruß
 
Zurück