C++ Funzioni con esempi di programma

โšก Riepilogo intelligente

Funzioni in C++ Raggruppa le istruzioni correlate in blocchi denominati riutilizzabili che prendono input, lo elaborano e restituiscono output. I programmi combinano funzioni di libreria integrate e funzioni definite dall'utente, ciascuna dichiarata, definita e chiamata per evitare la ripetizione del codice.

  • ๐Ÿงฉ Che cosa รจ: Una funzione raggruppa istruzioni che accettano parametri, li elaborano e restituiscono un valore, eseguendo un'attivitร  comune da un unico blocco.
  • ๐Ÿ“š Funzioni integrate: Migliori C++ La libreria standard include funzioni giร  pronte come sqrt() che รจ possibile chiamare direttamente senza doverle scrivere.
  • ๏ธ Funzioni definite dall'utente: I programmatori creano le proprie funzioni, le nominano in modo univoco e richiamano quel codice da qualsiasi punto del programma.
  • ๐Ÿ“ Dichiarazione e definizione: Un prototipo dichiara il tipo di ritorno, il nome e i tipi degli argomenti; la definizione fornisce il corpo della funzione.
  • ๐Ÿ“ž Appello e argomentazioni: La chiamata di una funzione ne esegue il corpo; gli argomenti devono corrispondere ai parametri in numero e tipo, ed รจ consentito l'uso di valori predefiniti.
  • ๐Ÿค– Assistenza AI: GitHub Copilot e assistenti simili forniscono supporto C++ Firme di funzioni, corpi e chiamate da un breve commento.

C++ funzioni

In cosa consiste una funzione C++?

Una funzione dentro C++ si riferisce a un gruppo di istruzioni che riceve input, lo elabora e restituisce un output. L'idea alla base di una funzione รจ combinare attivitร  comuni eseguite ripetutamente. Se hai input diversi, non scriverai piรน lo stesso codice. Chiamerai semplicemente la funzione con un diverso set di dati chiamati parametri.

Ogni C++ il programma ha almeno una funzione, la funzione main(). Puoi dividere il tuo codice in diverse funzioni. Questa divisione dovrebbe essere tale che ogni funzione svolga un compito specifico.

Ci sono molte funzioni integrate in C++ libreria standard. Puoi chiamare queste funzioni all'interno del tuo programma.

Perchรฉ usare le funzioni?

I vantaggi associati all'uso delle funzioni sono numerosi. Questi includono:

  • Ogni funzione mette insieme il codice correlato. Ciรฒ rende piรน semplice per i programmatori comprendere il codice.
  • Le funzioni semplificano la programmazione eliminando la ripetizione del codice.
  • Le funzioni facilitano il riutilizzo del codice. Puoi chiamare la stessa funzione per eseguire un'attivitร  in diverse sezioni del programma o anche al di fuori del programma.

Funzioni integrate

In C++, le funzioni della libreria sono integrate C++ funzioni. Per utilizzare queste funzioni, รจ sufficiente invocarle/chiamarle direttamente. Non รจ necessario scrivere tu stesso le funzioni.

Esempio 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Produzione:

Uscita del C++ esempio della funzione sqrt() integrata

Ecco uno screenshot del codice:

C++ codice che chiama la funzione integrata sqrt() da cmath

Code Spiegazione:

  1. Includi il file header iostream nel nostro programma per utilizzare le sue funzioni.
  2. Includere la libreria cmath per utilizzare le sue funzioni. Vogliamo utilizzare la funzione sqrt() definita in esso.
  3. Includi lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
  4. Chiama la funzione main(). La logica del programma dovrebbe essere aggiunta al corpo di questa funzione.
  5. Dichiarare due variabili double, num e squareRoot.
  6. Stampa del testo sulla console. Il testo chiede all'utente di inserire un numero.
  7. Leggere l'input dell'utente dalla tastiera. L'input diventerร  il valore della variabile num.
  8. Chiama la funzione di libreria sqrt(), che calcola la radice quadrata di un numero. Abbiamo passato il parametro num alla funzione, il che significa che calcolerร  la radice quadrata di num. Questa funzione รจ definita nella libreria cmath.
  9. Stampa il numero inserito dall'utente, la sua radice quadrata e qualche altro testo sulla console.
  10. Il programma deve restituire valore in caso di completamento positivo.
  11. Fine del corpo della funzione main().

Funzioni definite dall'utente

C++ consente ai programmatori di definire le proprie funzioni. Lo scopo della funzione รจ raggruppare il codice correlato. Al codice viene quindi assegnato un identificatore univoco, il nome della funzione.

La funzione puรฒ essere chiamata/invocata da qualsiasi altra parte del programma. Eseguirร  quindi il codice definito nel suo corpo.

Esempio 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Produzione:

Uscita del C++ funzione sayHello() definita dall'utente

Ecco uno screenshot del codice:

C++ codice che definisce e chiama una funzione definita dall'utente

Code Spiegazione:

  1. Includi il file header iostream nel nostro programma per utilizzare le sue funzioni.
  2. Includi lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
  3. Creare una funzione definita dall'utente denominata sayHello().
  4. Stampa del testo sulla console quando viene chiamata la funzione sayHello().
  5. Fine del corpo della funzione sayHello().
  6. Chiama la funzione main(). La logica del programma dovrebbe essere aggiunta al corpo di questa funzione.
  7. Chiama/richiama la funzione denominata sayHello().
  8. Il programma deve restituire valore in caso di completamento positivo.
  9. Fine del corpo della funzione main().

Il compilatore deve conoscere una funzione prima che questa venga utilizzata.

Dichiarazione/Prototipo di Funzione

Se definisci una funzione definita dall'utente dopo la funzione main(), il file C++ compilatore restituirร  un errore. Il motivo รจ che il compilatore non conosce i dettagli della funzione definita dall'utente. I dettagli includono il suo nome, i tipi di argomenti e i loro tipi di ritorno.

In C++, la dichiarazione/prototipo di funzione dichiara una funzione senza un corpo. Ciรฒ fornisce al compilatore i dettagli della funzione definita dall'utente.

Nella dichiarazione/prototipo includiamo il tipo restituito, il nome della funzione e i tipi di argomento. I nomi degli argomenti non vengono aggiunti. Tuttavia, l'aggiunta dei nomi degli argomenti non genera errori.

C++ Diagramma sintattico di dichiarazione/prototipo di funzione

Definizione della funzione

Lo scopo della dichiarazione di funzione รจ di dire a C++ compilatore sul nome della funzione, sul tipo restituito e sui parametri. Una definizione di funzione dice a C++ compilatore sul corpo della funzione.

C++ diagramma della struttura di definizione della funzione

Sintassi

return_datatype function_name( parameters) {
   function body 
}

Da quanto sopra, una definizione di funzione ha l'intestazione e il corpo della funzione. Ecco la spiegazione dei parametri:

  • return_datatype - Alcune funzioni restituiscono un valore. Questo parametro indica il tipo di dati del valore restituito. Alcune funzioni non restituiscono alcun valore. In tal caso, il valore di questo parametro diventa void.
  • nome_funzione: questo รจ il nome della funzione. Il nome della funzione e i parametri formano la firma della funzione.
  • Parametri: indica il tipo, l'ordine e il numero dei parametri della funzione. Alcune funzioni non hanno parametri.
  • corpo della funzione: queste sono istruzioni che definiscono cosa farร  la funzione.

Chiamata di funzione

Affinchรฉ una funzione possa eseguire l'attivitร  specificata e restituire l'output, รจ necessario chiamarla. Quando chiami una funzione, esegue le istruzioni aggiunte nel suo corpo.

Una funzione viene chiamata tramite il suo nome. Se la funzione accetta parametri, i loro valori devono essere passati durante la chiamata. Se la funzione non accetta parametri, non passare alcun valore durante la chiamata.

C++ diagramma della sintassi della chiamata di funzione

Argomenti di passaggio

In C++, un argomento/parametro sono i dati passati a una funzione durante la sua chiamata. I valori devono essere inizializzati nelle rispettive variabili.

Quando si chiama una funzione, il numero degli argomenti deve corrispondere. Ciรฒ significa che i valori passati devono essere uguali al numero dei parametri. Inoltre, i valori devono corrispondere ai parametri anche in termini di tipo. Se il primo parametro รจ un numero intero, anche il valore passato come argomento deve essere un numero intero.

รˆ possibile assegnare valori predefiniti ai parametri delle funzioni. Se non si specifica un valore per il parametro durante la chiamata alla funzione, verrร  utilizzato il valore predefinito.

Esempio 3: come scrivere e chiamare una funzione

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Produzione:

Uscita del C++ addFunc() funzione che restituisce una somma

Ecco uno screenshot del codice:

C++ codice che passa argomenti alla funzione addFunc()

Code Spiegazione:

  1. Includi il file header iostream nel nostro programma per utilizzare le sue funzioni.
  2. Includi lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
  3. Dichiara una funzione denominata addFunc() che accetta due parametri interi. Questo crea il prototipo della funzione.
  4. Chiama la funzione main(). La logica del programma dovrebbe essere aggiunta al corpo di questa funzione.
  5. Dichiarare tre variabili intere, x, y e somma.
  6. Stampa del testo sulla console. Il testo chiede all'utente di inserire due numeri.
  7. Leggere l'input dell'utente dalla tastiera. L'utente deve inserire due numeri per le variabili xey, separati da uno spazio.
  8. Chiama la funzione addFunc() e passale i parametri x e y. La funzione opererร  su questi parametri e assegnerร  l'output alla variabile somma.
  9. Stampa i valori delle variabili x, y e somma sulla console insieme ad altro testo.
  10. La funzione deve restituire valore in caso di completamento positivo.
  11. Fine del corpo della funzione main().
  12. Definizione della funzione. Stiamo definendo la funzione addFunc(). Dichiareremo cosa farร  la funzione all'interno del suo corpo, il { }.
  13. Dichiarare una variabile intera denominata addFunc.
  14. Sommando i valori dei parametri num1 e num2 e assegnando il risultato alla variabile addFunc.
  15. La funzione addFunc() dovrebbe restituire il valore della variabile addFunc.
  16. Fine del corpo della funzione, ovvero la definizione della funzione.

DOMANDE FREQUENTI

Il passaggio per valore copia l'argomento, quindi le modifiche all'interno della funzione non influiscono sull'originale. Il passaggio per riferimento passa la variabile con una e commerciale, consentendo alla funzione di modificare direttamente il valore del chiamante. C++ Per impostazione predefinita, la chiamata avviene per valore.

L'overloading delle funzioni consente a piรน funzioni di condividere lo stesso nome, ma di differire per il numero o il tipo dei parametri. Il compilatore seleziona la versione corretta in base agli argomenti passati, migliorando la leggibilitร  del codice per le operazioni correlate.

Una funzione inline richiede al compilatore di inserire il suo corpo in ogni punto di chiamata anzichรฉ effettuare una normale chiamata. Questo puรฒ ridurre il sovraccarico per le funzioni di piccole dimensioni, sebbene il compilatore possa ignorare l'indicazione.

Una funzione ricorsiva chiama se stessa, scomponendo un problema in sottoproblemi piรน piccoli. Ha bisogno di un caso base che interrompa la ricorsione; altrimenti le chiamate si ripetono all'infinito e causano un overflow dello stack. Il fattoriale รจ un classico esempio.

Il parametro viene passato come puntatore o array dimensionato e in genere la sua lunghezza viene inviata separatamente, perchรฉ l'array si converte in un puntatore. Vedi il passaggio matrici in C++ funzioni per esempi svolti completi.

Una funzione restituisce direttamente un singolo valore, ma รจ possibile restituirne diversi utilizzando parametri di riferimento di output, una struct, una std::pair, una std::tuple o una std::vector. I binding strutturati decomprimono quindi la tupla restituita nel punto di chiamata.

Sรฌ. Gli assistenti di programmazione basati sull'IA trasformano un commento in linguaggio semplice in un codice completo C++ funzione, suggerendo firma, corpo e tipo di ritorno. Effettuano anche il refactoring di funzioni lunghe, sebbene sia consigliabile rivedere la logica generata.

Copilota GitHub completamento automatico C++ Il sistema analizza le definizioni di funzioni, i prototipi e le chiamate dai tuoi commenti o nomi, propone overload e redige test unitari. Utilizza file di intestazione di riferimento per fornire contesto, ma ogni suggerimento necessita comunque di revisione.

Riassumi questo post con: