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ă.


Accessibility Options

Color Contrast

Text Size

Text Spacing

Reading Aids