StehtimSchilf
Erfahrenes Mitglied
Hallo Forum
Ich versuche verzeifelt die Deklaration von meiner .cpp nach .h zu verschieben. Wenn ich dies jedoch mache, erhalte ich die Fehlermeldung: "error C2572: 'trimblaasdfasdf' : redefinition of default parameter : parameter 2"
Anbei die Definition in .cpp
Anbei die Definition in .h
Wenn ich die Definition in die .cpp verschiebe, dann erhalte ich keinen Kompilerfehler. Ich verstehe jedoch nicht warum?
Ich habe keine ähnlichen Funktionen und Parameter (daher "asdfasdf"). Brauche ich für optionale Argumente noch irgendwelche spezielle inlucudes? Die include für std::string <sstream> und <iostream> habe ich selbstverständlich.
Interessant: Wenn ich in .h einfach nur diese Deklaration setze (es existiert keine Definition):
erhalte ich ebenfalls die gleiche Fehlermeldung. Lösche ich einfach "a=0" aus der Deklaration, kompiliert sich alles. Was ist kaputt?
Ideen?
cheerioh
SiS
Ich versuche verzeifelt die Deklaration von meiner .cpp nach .h zu verschieben. Wenn ich dies jedoch mache, erhalte ich die Fehlermeldung: "error C2572: 'trimblaasdfasdf' : redefinition of default parameter : parameter 2"
Anbei die Definition in .cpp
Code:
std::string trimblaasdfasdf(std::string& str, const std::string& whitespaces) {
const auto strBegin = str.find_first_not_of(whitespaces);
if (strBegin == std::string::npos)
return ""; // no content
const auto strEnd = str.find_last_not_of(whitespaces);
const auto strRange = strEnd - strBegin + 1;
return str.substr(strBegin, strRange);
}
Anbei die Definition in .h
Code:
std::string trimblaasdfasdf(std::string& str, const std::string& whitespaces = " \t\r\n");
Wenn ich die Definition in die .cpp verschiebe, dann erhalte ich keinen Kompilerfehler. Ich verstehe jedoch nicht warum?
Ich habe keine ähnlichen Funktionen und Parameter (daher "asdfasdf"). Brauche ich für optionale Argumente noch irgendwelche spezielle inlucudes? Die include für std::string <sstream> und <iostream> habe ich selbstverständlich.
Interessant: Wenn ich in .h einfach nur diese Deklaration setze (es existiert keine Definition):
Code:
std::string schnischnaschnappiasdfasdf(int i, int a = 0);
Ideen?
cheerioh
SiS
Zuletzt bearbeitet: