Ce este o funcție void în C++?

Funcțiile (sau subprogramele) sunt un mod foarte convenient de a scrie cod ordonat și ușor de înțeles. Astfel, putem defini un grup de instrucțiuni sub un nume reprezentativ și să executăm acel grup de instrucțiuni unde vrem în programul nostru principal.

Funcțiile normale

Funcțiile normale returnează o valoare: mai exact, după ce se apelează o funcție, în locul ei va fi trecută o valoare — similar cu o variabilă. Iată un exemplu:

#include <iostream>

using namespace std;

int sumaDouaNumere(int a, int b) { //Dăm un nume sugestiv: *sumaDouaNumere*
    int suma = a + b;
    return suma;
}

int main()
{
    int x, y;
    cin >> x >> y;
    cout << sumaDouaNumere(x, y); //sumaDouaNumere(x, y) se înlocuiește cu x + y (după definiția funcției)

    return 0;
}

Funcțiile void

Totuși, există situații când vrem să executăm un bloc de instrucțiuni, fără să returnăm ceva: spre exemplu, pentru a afișa un mesaj pe ecran. În aceste situații, putem folosi funcția void. Nu este necesară folosirea instrucțiunii return într-o funcție void.

Iată un exemplu, care afișează pe ecran un mesaj specific:

#include <iostream>

using namespace std;

void afiseazaVariabila(int n) {
    cout << "Variabila: " << n << endl;
}

int main()
{
    int n;
    cin >> n;
    afiseazaVariabila(n); //Nu returnează nimic, doar afișează pe ecran
    n++;
    afiseazaVariabila(n);
    afiseazaVariabila(3);
    return 0;
}

Instrucțiunea return în funcțiile void

Deși nu este necesar, în funcțiile void poate apărea instrucțiunea return, astfel:

return; //**Nu** return ceva;

Instrucțiunea return în funcțiile void este similară cu break dintr-o structură repetitivă: va opri execuția restul liniilor din funcție.

Iată un exemplu:

#include <iostream>

using namespace std;

void afiseazaVariabila(int n) {
    cout << n << endl;
    return;
    cout << "Evil n be like: " << -n << endl;
}

int main()
{
    int n;
    cin >> n;
    afiseazaVariabila(n); //Afișează doar n, nu și a doua instrucțiune de afișare (deoarece apare return înainte)
    return 0;
}

DS

Autorul acestei lecții

Dominic Satnoianu

Această lecție a fost redactată de către Dominic Satnoianu.

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.

Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te