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 nom_de_la_funció(paràmetres) {
    // cos de la funció
}
  • 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

int suma(int a, int b) {
    return a + b;
}

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.

void incrementa(int x) {
    x = x + 1;
}

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.

void incrementa(int &x) {
    x = x + 1;
}

Passatge per Punter

Similar al passatge per referència, però es fa servir un punter per passar l'adreça de memòria.

void incrementa(int *x) {
    *x = *x + 1;
}

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

int multiplica(int a, int b) {
    return a * b;
}

Exemple de Funció sense Retorn

void imprimeixMissatge() {
    std::cout << "Hola, món!" << std::endl;
}

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.

int suma(int a, int b) {
    // Implementa la funció aquí
}

Exercici 2: Funció de Canvi de Valors

Escriu una funció canviaValors que rebi dos enters per referència i intercanviï els seus valors.

void canviaValors(int &a, int &b) {
    // Implementa la funció aquí
}

Solucions

Solució Exercici 1

int suma(int a, int b) {
    return a + b;
}

Solució Exercici 2

void canviaValors(int &a, int &b) {
    int temp = a;
    a = b;
    b = temp;
}

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.

© Copyright 2024. Tots els drets reservats