Transmiterea parametrilor



Mecanismele de transmitere a parametrilor în C++

Există două modalități de transmitere a parametrilor:


Transmiterea prin valoare

În cazul transmiterii parametrilor prin valoare, parametrii formali ai unei funcții sunt copii ale valorilor parametrilor actuali. Acest lucru înseamnă că:


Exemplu:

#include < iostream >
using namespace std;

int cmmdc(int a , int b)
{
    cout << "La inceputul functiei cmmdc, a = " << a << " si b = " << b << endl;
    while(b != 0)
    {
        int r = a % b;
        a = b;
        b = r;
    }
    cout << "La finalul functiei cmmdc, a = " << a << " si b = " << b << endl;
    return a;
}

int main()
{
    int x = 24, y = 18;
    cout << cmmdc(x , y) << endl;
    cout << "După apelul functiei cmmdc, x = " << x << " si y = " << y << endl;
    return 0;
}

Constatăm că deși în funcția cmmdc parametrii formali a și b se modifică, în main(), după apelul funcției cmmdc(), parametrii actuali x și y au valorile anterioare.


Transmiterea prin referință

Este mecanismul specific C++ prin care putem modifica într-o funcție variabile din afara funcției. În cazul transmiterii parametrilor prin referință, parametrii formali ai unei funcții sunt referințe ale parametrilor actuali. Acest lucru înseamnă că:


Exemplu:

#include < iostream >
using namespace std;

void dublare(int & n)
{
    n = 2 * n;
}

int main()
{
    int x = 24;
    cout << "x = "  << x << endl;
    dublare(x);
    cout << "x = "  << x << endl;
    return 0;
}

Constatăm că, la ieșirea din apel, valoarea variabilei x este modificată. Mai mult, un apel de forma dublare(10); reprezintă o eroare de sintaxă, deoarece parametrul actual trebuie să fie variabilă.


Color Contrast

Text Size

Text Spacing

Reading Aids


În această secțiune poți genera un rezumat al conținutului paginii folosind AI! Fii liber să folosești butonul de mai jos oricând ești pe grabă și nu ai timp să înveți tot!


Summary

În această secțiune poți întreba expertul nostru robot orice legat de nelămuririle pe care le-ai întâlnit de-a lungul lecțiilor! Fii liber să folosești butonul de mai jos oricând ai nevoie de explicații adiționale!


Chatbot