Funktionsnamen können überladen werden, d.h. der gleiche Funktionsname kann benutzt werden, sofern verschiedene Parametertypen und/oder Parameteranzahlen verwendet werden.
Prototypen:
double abs(double); // absolute value of double int abs(int); // absolute value of int double abs(double,double); // absolute value of "complex"
Implementierung:
double abs(
double x
) {
return(x>=0.0?x;-x);
}
int abs(
int i
) {
return(i>=0?i;-i);
}
double abs(
double real,
double imag
) {
return(sqrt(real*real+imag*imag));
}
Vorsicht ist wegen impliziter Typ-Konvertierung in C/C++ geboten, insbesondere wegen des NULL-Zeigers, der in C++ durch die einfache 0 ausgedrückt wird.