Ich war auf der Suche über den folgenden Code:Überladene Zeiger
string toUpper(string s) {
string result;
int (*toupperp)(int) = &toupper; // toupper is overloaded
transform(begin(s), end(s), back_inserter(result), toupperp);
return result;
}
ich von dieser Linie bin verwirrt:
int (*toupperp)(int) = &toupper; // toupper is overloaded
1.Why ist diese Linie notwendig?
2.Ich glaube, dass &
einen Zeiger auf etwas aus dem Speicher abruft. Aber toupper
, der Name der Funktion ist schon ein Zeiger, nein? Warum können wir das nicht tun:
int (*toupperp)(int) = toupper;
3.Warum die Funktion int
überlastet ist, wenn es auf einem string
verwendet wird?
3. Es wird nicht auf 'string', sondern auf jedem' char' der 'string' verwendet. – Jarod42