In questo tutorial, impareremo la funzione C ++ e le espressioni di funzioni con l'aiuto di esempi.
Una funzione è un blocco di codice che esegue un'attività specifica.
Supponiamo di dover creare un programma per creare un cerchio e colorarlo. Possiamo creare due funzioni per risolvere questo problema:
- una funzione per disegnare il cerchio
- una funzione per colorare il cerchio
Dividere un problema complesso in parti più piccole rende il nostro programma facile da capire e riutilizzabile.
Esistono due tipi di funzione:
- Funzioni di libreria standard: predefinite in C ++
- Funzione definita dall'utente: creata dagli utenti
In questo tutorial, ci concentreremo principalmente sulle funzioni definite dall'utente.
Funzione C ++ definita dall'utente
C ++ consente al programmatore di definire la propria funzione.
Una funzione definita dall'utente raggruppa il codice per eseguire un'attività specifica e a quel gruppo di codice viene assegnato un nome (identificatore).
Quando la funzione viene invocata da qualsiasi parte del programma, tutto esegue i codici definiti nel corpo della funzione.
Dichiarazione di funzione C ++
La sintassi per dichiarare una funzione è:
returnType functionName (parameter1, parameter2,… ) ( // function body )
Ecco un esempio di una dichiarazione di funzione.
// function declaration void greet() ( cout << "Hello World"; )
Qui,
- il nome della funzione è
greet()
- il tipo di ritorno della funzione è
void
- le parentesi vuote indicano che non ha parametri
- il corpo della funzione è scritto all'interno
()
Nota: impareremo a conoscere returnType
e parameters
più avanti in questo tutorial.
Chiamare una funzione
Nel programma precedente, abbiamo dichiarato una funzione denominata greet()
. Per utilizzare la greet()
funzione, dobbiamo chiamarla.
Ecco come possiamo chiamare la greet()
funzione sopra .
int main() ( // calling a function greet(); )
![](https://cdn.wiki-base.com/4717969/c_function_with_examples.png.webp)
Esempio 1: visualizzare un testo
#include using namespace std; // declaring a function void greet() ( cout << "Hello there!"; ) int main() ( // calling the function greet(); return 0; )
Produzione
Ciao!
Parametri di funzione
Come accennato in precedenza, una funzione può essere dichiarata con parametri (argomenti). Un parametro è un valore che viene passato quando si dichiara una funzione.
Ad esempio, consideriamo la funzione seguente:
void printNum(int num) ( cout << num; )
Qui, la int
variabile num è il parametro della funzione.
Passiamo un valore al parametro della funzione durante la chiamata della funzione.
int main() ( int n = 7; // calling the function // n is passed to the function as argument printNum(n); return 0; )
Esempio 2: funzione con parametri
// program to print a text #include using namespace std; // display a number void displayNum(int n1, float n2) ( cout << "The int number is " << n1; cout << "The double number is " << n2; ) int main() ( int num1 = 5; double num2 = 5.5; // calling the function displayNum(num1, num2); return 0; )
Produzione
Il numero int è 5 Il numero doppio è 5,5
Nel programma sopra, abbiamo usato una funzione che ha un int
parametro e un double
parametro.
Quindi passiamo num1 e num2 come argomenti. Questi valori vengono memorizzati rispettivamente dai parametri di funzione n1 e n2.
![](https://cdn.wiki-base.com/4717969/c_function_with_examples_2.png.webp)
Nota: il tipo di argomenti passati durante la chiamata della funzione deve corrispondere ai parametri corrispondenti definiti nella dichiarazione della funzione.
Dichiarazione di restituzione
Nei programmi sopra, abbiamo usato void nella dichiarazione della funzione. Per esempio,
void displayNumber() ( // code )
Ciò significa che la funzione non restituisce alcun valore.
È anche possibile restituire un valore da una funzione. Per questo, dobbiamo specificare il valore returnType
della funzione durante la dichiarazione della funzione.
Quindi, l' return
istruzione può essere utilizzata per restituire un valore da una funzione.
Per esempio,
int add (int a, int b) ( return (a + b); )
Qui abbiamo il tipo di dati int
invece di void
. Ciò significa che la funzione restituisce un int
valore.
Il codice return (a + b);
restituisce la somma dei due parametri come valore della funzione.
L' return
istruzione indica che la funzione è terminata. Qualsiasi codice dopo return
all'interno della funzione non viene eseguito.
Esempio 3: aggiungi due numeri
// program to add two numbers using a function #include using namespace std; // declaring a function int add(int a, int b) ( return (a + b); ) int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; )
Produzione
100 + 78 = 178
Nel programma sopra, la add()
funzione viene utilizzata per trovare la somma di due numeri.
Passiamo due int
letterali 100
e 78
mentre chiamiamo la funzione.
Memorizziamo il valore restituito dalla funzione nella variabile sum, quindi lo stampiamo.
![](https://cdn.wiki-base.com/4717969/c_function_with_examples_3.png.webp)
Notare che la somma è una variabile di int
tipo. Questo perché il valore restituito di add()
è di int
tipo.
Prototipo di funzione
In C++, the code of function declaration should be before the function call. However, if we want to define a function after the function call, we need to use the function prototype. For example,
// function prototype void add(int, int); int main() ( // calling the function before declaration. add(5, 3); return 0; ) // function definition void add(int a, int b) ( cout << (a + b); )
In the above code, the function prototype is:
void add(int, int);
This provides the compiler with information about the function name and its parameters. That's why we can use the code to call a function before the function has been defined.
The syntax of a function prototype is:
returnType functionName(dataType1, dataType2,… );
Example 4: C++ Function Prototype
// using function definition after main() function // function prototype is declared before main() #include using namespace std; // function prototype int add(int, int); int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; ) // function definition int add(int a, int b) ( return (a + b); )
Output
100 + 78 = 178
The above program is nearly identical to Example 3. The only difference is that here, the function is defined after the function call.
That's why we have used a function prototype in this example.
Benefits of Using User-Defined Functions
- Functions make the code reusable. We can declare them once and use them multiple times.
- Functions make the program easier as each small task is divided into a function.
- Functions increase readability.
C++ Library Functions
Library functions are the built-in functions in C++ programming.
Programmers can use library functions by invoking the functions directly; they don't need to write the functions themselves.
Some common library functions in C++ are sqrt()
, abs()
, isdigit()
, etc.
In order to use library functions, we usually need to include the header file in which these library functions are defined.
For instance, in order to use mathematical functions such as sqrt()
and abs()
, we need to include the header file cmath
.
Example 5: C++ Program to Find the Square Root of a Number
#include #include using namespace std; int main() ( double number, squareRoot; number = 25.0; // sqrt() is a library function to calculate the square root squareRoot = sqrt(number); cout << "Square root of " << number << " = " << squareRoot; return 0; )
Output
Radice quadrata di 25 = 5
In questo programma, la sqrt()
funzione di libreria viene utilizzata per calcolare la radice quadrata di un numero.
La dichiarazione di funzione di sqrt()
è definita nel cmath
file di intestazione. Ecco perché dobbiamo utilizzare il codice #include
per utilizzare la sqrt()
funzione.
Per saperne di più, visita le funzioni della libreria standard C ++.