Sintaxa completa a unei functii
O functie in C++ are 4 componente obligatorii: tipul returnat (ce fel de valoare da inapoi), numele (cum o chemam), parametrii (ce date primeste), si corpul (ce face cu acele date).
Gandeste-te la o functie ca la o reteta de bucatarie: are un nume ("Tort de ciocolata"), ingrediente (parametri), pasi de urmat (corpul), si un rezultat final (valoarea returnata).
Functii void — "fa ceva, dar nu da nimic inapoi"
O functie void executa o actiune (afiseaza ceva, modifica o variabila globala), dar nu returneaza nicio valoare. Nu poti scrie x = functieVoid(); pentru ca nu da nimic inapoi.
Functii cu tip returnat — "calculeaza si da-mi rezultatul"
O functie cu tip returnat (int, float, bool, char) calculeaza ceva si da inapoi o valoare prin return. Poti folosi rezultatul in calcule, il poti afisa, sau il poti stoca intr-o variabila.
Ce este un prototip de functie?
Un prototip (sau declaratie) este o "promisiune" facuta compilatorului: "Aceasta functie exista, are acest tip si acesti parametri. O sa-ti arat corpul mai tarziu."
Prototipul se scrie inainte de main si se termina cu punct si virgula (;). Definitia completa (cu corpul) se scrie dupa main.
Ordinea conteaza!
In C++, compilatorul citeste codul de sus in jos. Daca apelezi o functie in main, compilatorul trebuie sa fi vazut deja fie definitia completa, fie cel putin prototipul al acelei functii.
Daca pui definitia functiei DUPA main fara prototip, compilatorul va spune: "Nu stiu ce este dublu!"
Ce identifica unic o functie?
Semnatura unei functii este combinatia dintre numele functiei si tipurile parametrilor sai. Semnatura este ca un CNP al functiei — o identifica unic.
Doua functii pot avea acelasi nume daca au parametri diferiti (acest lucru se numeste supraincarcarea functiilor, dar o vei invata mai tarziu).
Reguli pentru nume bune de functii
Numele unei functii trebuie sa spuna ce face acea functie. Un nume bun face codul sa se citeasca aproape ca o propozitie in limba romana.
| Regula | Exemplu bun ✅ | Exemplu rau ❌ |
|---|---|---|
| Incepe cu verb | calculeazaSuma | suma |
| Foloseste camelCase | afiseazaNote | afiseaza_note |
| Fi descriptiv | verificaParitate | vp |
| Fara diacritice | calculeazaMedia | calculeazăMedia |
| Fara spatii/caractere speciale | esteNrPrim | este nr prim |
Program cu mai multe functii — ruleaza-l!
Acest program combina tot ce ai invatat: o functie void, o functie cu return int, o functie cu return float, si organizare cu prototipuri.