Sovraccarico di funzione C ++

Sovraccarico di funzione C ++

C ++ è un linguaggio di programmazione per uso generale flessibile. Questo linguaggio di programmazione è stato originariamente creato da Bjarne Stroustrup, un informatico danese, nel 1985. C ++ supporta il polimorfismo, l'eredità e altro ancora. Questo articolo copre il sovraccarico delle funzioni per ottenere il polimorfismo a tempo di compilazione nel linguaggio di programmazione C ++.

Cos'è una funzione?

Una funzione non è altro che un codice specifico che esegue un'attività specifica basata sugli input forniti e restituisce i risultati richiesti all'utente sotto forma di un output. Le funzioni vengono utilizzate per eliminare il codice ripetitivo in grandi basi di codice.

Dopo aver definito una funzione, è possibile riutilizzarla in un momento successivo, sia nello stesso programma che in un programma diverso.

Sintassi della funzione

Una funzione in C ++ ha la seguente sintassi:

returnType FunctionName (Parameter_List)

..
..
return return_value;

ReturnType, Parameter_List e l'istruzione di ritorno sono opzionali. Una funzione in C ++ può restituire un massimo di un valore. Se una funzione non restituisce alcun valore, il returnType deve essere definito come vuoto.

Cos'è il sovraccarico di funzioni?

In C ++, le definizioni di funzionalità multiple possono avere lo stesso nome di funzione, ma con parametri diversi. Questo si chiama sovraccarico di funzioni. Con l'aiuto della funzione di sovraccarico della funzione, il polimorfismo a tempo di compilazione può essere ottenuto in C++.

Le funzioni possono essere sovraccariche nei seguenti modi:

  1. Il numero di parametri può essere diverso
  2. Il tipo di dati dei parametri può essere diverso
  3. La sequenza dei parametri può essere diversa

Tuttavia, il valore di ritorno non è considerato per il sovraccarico delle funzioni.

Le seguenti funzioni sono sovraccaricate:

  1. int aggiunta (int a, int b)
  2. Float Aggiunta (Float F, Gloat G)
  3. Float Aggiunta (float f, int i)
  4. Float Aggiunta (int i, float f)
  5. int aggiunta (int a, int b, int c)
  6. Aggiunta di galleggiante (galleggiante F, galleggiante G, galleggiante H)

Come puoi vedere, con l'aiuto della funzione di sovraccarico di funzioni in C ++, possono esserci più definizioni/funzionalità con lo stesso nome di funzione e nello stesso ambito.

Senza la funzione di sovraccarico delle funzioni, è necessario scrivere una funzione separata [ad esempio, addite_1 (), aggiunta_2 () ecc.] Per ogni variazione. Ad esempio, potrebbe essere necessario scrivere addite_1 () per aggiungere due numeri interi, aggiungi_2 () per aggiungere due carri e così via. Tuttavia, come puoi vedere sopra, la funzione di sovraccarico di funzioni può essere utilizzata per definire più variazioni della funzione "Aggiungi ()", pur mantenendo lo stesso nome della funzione.

Le seguenti funzioni non sono considerate sovraccarichi perché l'unica differenza tra questi due è il tipo di ritorno (il tipo di ritorno non è considerato per il sovraccarico di funzioni in C ++):

  1. int aggiunta (int a, int b)
  2. Float Aggiunta (int a, int b)

Esempi

Ora che capisci il concetto di sovraccarico di funzioni, passeremo un paio di programmi di esempio funzionanti per comprendere questo concetto più chiaramente. Copriremo i seguenti esempi:

  1. Esempio 1: funzione semplice
  2. Esempio 2: semplice funzione di addizione
  3. Esempio 3: sovraccarico di funzioni (1)
  4. Esempio 4: sovraccarico di funzioni (2)
  5. Esempio 5: sovraccarico di funzioni (3)

I primi due esempi spiegano come funzionano le funzioni normali in C ++, mentre gli ultimi tre esempi dimostrano la funzione di sovraccarico della funzione in C++.

Esempio 1: funzione semplice

In questo esempio, dimostreremo come una funzione semplice può essere definita e chiamata in c++. Definiremo una classe chiamata "Display" e una funzione pubblica chiamata "Display ()."Dalla funzione" main () ", chiameremo la funzione" display () "con l'aiuto dell'oggetto di classe" Display "(D).

#includere
Utilizzo dello spazio dei nomi std;
display di classe

pubblico:
void display ()
cout << "Hello World!" << endl;

;
int main ()

Visualizzare D;
D.Schermo();
restituzione 0;

Esempio 2: semplice funzione di addizione

In questo esempio, dimostreremo come definire una semplice funzione "aggiunta ()" in C++. Definiremo una classe chiamata "DeMoadd" e una funzione pubblica chiamata "Aggiunta ()."Dalla funzione" main () ", chiameremo la funzione" Aggiungi () "con l'aiuto dell'oggetto di classe" DeMoadd "(D).

In questo esempio, l'attuale implementazione della funzione "Aggiungi ()" accetta solo due parametri interi. Ciò significa che l'attuale funzione "Aggiunta ()" è in grado di aggiungere solo due numeri interi.

Per aggiungere tre numeri interi anziché due, è possibile definire una funzione con un nome diverso, come "Aggiungi_1 (). In C ++, una funzione può essere sovraccarica, il che significa che un'altra definizione della funzione "Aggiungi ()" può essere definita per aggiungere tre numeri interi e mantenere lo stesso nome, i.e., “Aggiunta ()."Nel prossimo esempio, esamineremo come sovraccaricare la funzione" Aggiungi () ".

#includere
Utilizzo dello spazio dei nomi std;
Classe DeMoadd

pubblico:
int addition (int a, int b)
RISULTATO INT;
risultato = a + b;
risultato di ritorno;

;
int main ()
Demoadd d;
int i1 = 10, i2 = 20, res;
res = d.aggiunta (i1, i2);
cout << "Result = " << res << endl;
restituzione 0;

Esempio 3: sovraccarico di funzioni (1)

Nell'esempio precedente, abbiamo definito la funzione "Aggiungi ()" per aggiungere due numeri interi e restituire il risultato calcolato. Ora, in questo esempio, sovraccaricheremo la funzione "Aggiungi ()" per aggiungere tre numeri interi. Quindi, saremo in grado di chiamare la funzione "aggiunta ()" con due argomenti interi, nonché tre argomenti interi.

Senza la funzione di sovraccarico della funzione, dovremmo scrivere un'altra funzione con un nome diverso.

#includere
Utilizzo dello spazio dei nomi std;
Classe DeMoadd

pubblico:
// Definizione della prima funzione di aggiunta ()
int aggiunta (int a, int b)

RISULTATO INT;
risultato = a + b;
risultato di ritorno;

// versione sovraccaricata della funzione aggiuntiva ()
int aggiunta (int a, int b, int c)

RISULTATO INT;
risultato = a + b + c;
risultato di ritorno;

;
int main ()

Demoadd d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
Res1 = d.aggiunta (i1, i2); // aggiunta () con 2 parametri
Res2 = d.aggiunta (i1, i2, i3); // aggiunta () con 3 parametri
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
restituzione 0;

Esempio 4: sovraccarico di funzioni (2)

Nelle sezioni precedenti di questo articolo, hai appreso che il sovraccarico di funzioni può essere eseguito in base alle differenze nel tipo di parametro. Qui, abbiamo sovraccaricato la funzione "Aggiungi ()" in base al tipo di dati del parametro. Nella prima versione della funzione di addizione, aggiungeremo due variabili di tipo intero; E nella seconda versione, aggiungeremo due variabili di tipo galleggiante.

#includere
Utilizzo dello spazio dei nomi std;
Classe DeMoadd

pubblico:
// prima definizione di addizione ()
int aggiunta (int a, int b)

RISULTATO INT;
risultato = a + b;
risultato di ritorno;

// Definizione della funzione sovraccarica
Float Aggiunta (Float F, Float G)

risultato galleggiante;
risultato = f + g;
risultato di ritorno;

;
int main ()
Demoadd d;
int i1 = 10, i2 = 20, res1;
Float f1 = 10.5, F2 = 20.7, res2;
Res1 = d.aggiunta (i1, i2); // aggiunta (int a, int b) verrà chiamato
Res2 = d.aggiunta (F1, F2); // aggiunta (float f, piatto g) verrà chiamato
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
restituzione 0;

Esempio 5: sovraccarico di funzioni (3)

In questo esempio, la funzione "Aggiungi ()" è sovraccarica in base alle differenze nella sequenza dell'elenco dei parametri. Questo è un altro modo per sovraccaricare una funzione in c++.

#includere
Utilizzo dello spazio dei nomi std;
Classe DeMoadd

pubblico:
// Funzione di prima funzione di aggiunta ()
Float Aggiunta (int a, float b)

risultato galleggiante;
risultato = (float) a + b;
risultato di ritorno;

// Funzione di funzione sovraccaricata della funzione aggiunta ()
Float Aggiunta (float A, int b)

risultato galleggiante;
risultato = a + (float) b;
risultato di ritorno;

;
int main ()

Demoadd d;
int i1 = 10;
Float f1 = 10.5, Res1, Res2;
Res1 = d.aggiunta (I1, F1); // aggiunta (int a, float b) verrà chiamato
Res2 = d.aggiunta (F1, I1); // aggiunta (float a, int b) verrà chiamato
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
restituzione 0;

Conclusione

C ++ è un linguaggio di programmazione per uso generale e flessibile che è ampiamente utilizzato in vari settori. Questo linguaggio di programmazione supporta il polimorfismo sia di compilazione che di runtime. In questo articolo, hai imparato a ottenere il polimorfismo a tempo di compilazione in C ++ utilizzando la funzione di sovraccarico delle funzioni. Questa è una caratteristica molto utile in C ++ che aiuta i programmatori a scrivere codice leggibile. Può anche essere utile per scrivere codice riutilizzabile.