Referenz als Defaultparameter
-
Hallo Leute!
Ist es möglich, eine Referenz die ein Funktionsparameter ist, einen Defaultwert zuzuweisen?
Fiktives nicht funktionierendes Beispiel:
std::vector< std::string > &ref = 0Geht soetwas?
-
Hallo,
Da eine Referenz immer auf ein gültiges Objekt zeigen muß, Nein.
-
Als Funktionsparameter (oder auch von Methoden) kannst du aber z.B.
void f(const std::string &str = std::string());oder
static std::vector< std::string > st_vec; void f(std::vector< std::string > &vec = st_vec)deklarieren.
-
Delryn schrieb:
Hallo Leute!
Ist es möglich, eine Referenz die ein Funktionsparameter ist, einen Defaultwert zuzuweisen?
Fiktives nicht funktionierendes Beispiel:
std::vector< std::string > &ref = 0Geht soetwas?
sofern der initialisierunsgausdruck dann ein lvalue des entsprechenden typs ist (oder implizit in diesen gewandelt werden kann), kein problem. für die konstante 0 trifft das allerdings niemals zu

gewöhnlich macht man das mit referenzen auf const, denn dann kann man temporaries benutzen - bei referenzen auf non-const ist es eher schwierig, einen sinnvollen ausdruck zu finden.