En aquest tema, explorarem com definir i utilitzar paràmetres de funció i tipus de retorn en C++. Les funcions són blocs de codi reutilitzables que permeten dividir un programa en parts més petites i manejables. Comprendre com passar dades a les funcions i com retornar valors és fonamental per escriure codi modular i eficient.
Continguts
Definició de Funcions
Una funció en C++ es defineix amb la següent estructura bàsica:
- tipus_de_retorn: El tipus de dada que la funció retorna. Si la funció no retorna cap valor, es fa servir
void
. - nom_de_la_funció: El nom de la funció.
- paràmetres: Una llista de variables que la funció rep com a entrada.
Exemple
En aquest exemple, la funció suma
rep dos enters com a paràmetres i retorna la seva suma.
Paràmetres de Funció
Els paràmetres de funció són les dades que es passen a una funció quan aquesta és cridada. Hi ha diverses maneres de passar paràmetres a una funció:
Passatge per Valor
Quan es passen paràmetres per valor, es crea una còpia dels arguments passats a la funció. Els canvis fets als paràmetres dins de la funció no afecten els arguments originals.
Passatge per Referència
Quan es passen paràmetres per referència, es passa l'adreça de memòria dels arguments. Els canvis fets als paràmetres dins de la funció afecten els arguments originals.
Passatge per Punter
Similar al passatge per referència, però es fa servir un punter per passar l'adreça de memòria.
Tipus de Retorn
El tipus de retorn d'una funció especifica el tipus de dada que la funció retorna. Si la funció no retorna cap valor, es fa servir void
.
Exemple de Funció amb Retorn
Exemple de Funció sense Retorn
Exemples Pràctics
Exemple 1: Funció amb Passatge per Valor
#include <iostream> void incrementa(int x) { x = x + 1; std::cout << "Dins de la funció: " << x << std::endl; } int main() { int num = 5; incrementa(num); std::cout << "Fora de la funció: " << num << std::endl; return 0; }
Exemple 2: Funció amb Passatge per Referència
#include <iostream> void incrementa(int &x) { x = x + 1; std::cout << "Dins de la funció: " << x << std::endl; } int main() { int num = 5; incrementa(num); std::cout << "Fora de la funció: " << num << std::endl; return 0; }
Exemple 3: Funció amb Passatge per Punter
#include <iostream> void incrementa(int *x) { *x = *x + 1; std::cout << "Dins de la funció: " << *x << std::endl; } int main() { int num = 5; incrementa(&num); std::cout << "Fora de la funció: " << num << std::endl; return 0; }
Exercicis Pràctics
Exercici 1: Funció de Suma
Escriu una funció suma
que rebi dos enters com a paràmetres i retorni la seva suma.
Exercici 2: Funció de Canvi de Valors
Escriu una funció canviaValors
que rebi dos enters per referència i intercanviï els seus valors.
Solucions
Solució Exercici 1
Solució Exercici 2
Conclusió
En aquesta secció, hem après com definir funcions amb paràmetres i tipus de retorn en C++. Hem explorat diferents maneres de passar paràmetres a les funcions i com retornar valors. Aquests conceptes són fonamentals per escriure codi modular i reutilitzable. En la propera secció, aprofundirem en la sobrecàrrega de funcions, una característica poderosa de C++ que permet definir múltiples funcions amb el mateix nom però diferents paràmetres.
Curs de Programació en C++
Mòdul 1: Introducció al C++
- Introducció al C++
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Entrada i Sortida
Mòdul 2: Estructures de Control
Mòdul 3: Funcions
- Introducció a les Funcions
- Paràmetres de Funció i Tipus de Retorn
- Sobrecàrrega de Funcions
- Recursivitat
Mòdul 4: Arrays i Strings
Mòdul 5: Punteres i Referències
- Introducció als Punteres
- Aritmètica de Punteres
- Punteres i Arrays
- Referències
- Assignació Dinàmica de Memòria
Mòdul 6: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Constructors i Destructors
- Herència
- Polimorfisme
- Encapsulació i Abstracció
Mòdul 7: Temes Avançats
- Plantilles
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Biblioteca de Plantilles Estàndard (STL)
- Expressions Lambda
- Multifil