Funcții
Supraîncărcarea funcțiilor
Supraîncărcarea (overloading) permite mai multe funcții cu același nume, dar cu parametri diferiți. Compilatorul alege versiunea potrivită.
overloading.cpp
int aduna(int a, int b) { return a + b; }
double aduna(double a, double b) { return a + b; }
int aduna(int a, int b, int c) { return a + b + c; }
cout << aduna(3, 4) << endl; // 7 (versiunea int)
cout << aduna(1.5, 2.5) << endl; // 4.0 (versiunea double)
cout << aduna(1, 2, 3) << endl; // 6 (versiunea 3 parametri)Supraîncărcarea se bazează pe tipul și numărul parametrilor, nu pe tipul de retur. Două funcții cu același nume și aceiași parametri dar return diferit duce la eroare de compilare.