Paramenter call-by-val und "const"
-
Hallo
1. Fragr:
Habe eine funktion:
void func(const int& i){ int h= i; . . . }dann kann ich die funktion ja
func(1); int k=6; func(k);aufrufen
so, würde ich den parameter definition in der funktion ohne "const" machen, könnte ich ja func(1); nicht mehr aufrufen...
was macht der compiler da?
2. Frage:
class Master{ const int m_iMaster; public: . . inline const int& Get(){ return m_iMaster; } };die function der Klasse Get gibt eine refenrzen des variabel m_iMaster zurück.
Aber wieso geht sowas :Master o; int h= o.Get();ein Konstanten wert als referenz auf eine NICHT Konstante??
-
Manchmal formulierst Du komisch

BorisDieKlinge schrieb:
so, würde ich den parameter definition in der funktion ohne "const" machen, könnte ich ja func(1); nicht mehr aufrufen...
was macht der compiler da?
Vermutlich feststellen, dass "1" vom Typ const int ist, weiters dass die Funktion eine Referenz auf ein non-const int erwartet, und daraufhin eine Fehlermeldung werfen.
die function der Klasse Get gibt eine refenrzen des variabel m_iMaster zurück.
Aber wieso geht sowas :Master o; int h= o.Get();ein Konstanten wert als referenz auf eine NICHT Konstante??
Du legst hier nichts weiter als eine Kopie des konstanten Wertes an.
-
zu 2. ah stimmt..
meinte das
sowasint &h= o.Get();nich gehen würde...