Che cos'è il sovraccarico in C ++?

C ++ consente di scrivere codice flessibile e di facile comprensione usando il concetto noto come sovraccarico. Consente di ottenere diverse funzionalità all'interno del codice esistente con modifiche minime, riducendo così il codice duplicato. Fondamentalmente, ci sono principalmente due tipi primari di sovraccarico che sono supportati da C ++.

C ++ ci consente di scrivere funzioni con lo stesso nome ma con la differenza nei tipi di dati o nel numero di argomenti passati ad essa, questa funzione è nota come sovraccarico di funzioni in C ++. Questa funzione consente agli sviluppatori di definire le funzioni con lo stesso nome all'interno dello stesso ambito. Con lo stesso nome, le funzioni rappresentano la stessa funzionalità permettendo così di ottenere polimorfismo in fase di compilazione. Il sovraccarico della funzione ha un vantaggio che migliora la leggibilità del codice.

Esiste un'altra funzione fornita in C ++ che consente di ridefinire la funzionalità esistente degli operatori integrati, nota come Sovraccarico dell'operatore . Questa funzione consente di utilizzare operatori integrati su tipi definiti dall'utente. Il sovraccarico dell'operatore semplifica il codice ridefinendo la funzionalità secondo i requisiti dell'utente. In questo articolo ci concentreremo sia sul sovraccarico della funzione che sul sovraccarico dell'operatore, ne vedremo i dettagli e come viene utilizzato in C ++.

Come funziona il sovraccarico in C ++?

  • Sovraccarico di funzioni: ci consente di definire la funzione con lo stesso nome, ma distingue le funzioni in base al tipo di parametri passati o al numero di parametri passati ad essi. Pertanto, tutte le funzioni avranno lo stesso nome ma avranno un tipo di dati diverso o avranno un numero diverso di parametri passati ad esso. Quando viene chiamata la funzione, il compilatore sceglierà la funzione con il tipo di parametro corrispondente e il numero di argomenti corrispondente. Ora i suoi sviluppatori possono scegliere quale funzione chiamare in base ai requisiti. Possono scegliere la funzione appropriata passando i parametri seguendo le regole.
  • Sovraccarico dell'operatore: consente agli operatori di lavorare per tipi di dati definiti dall'utente, ad esempio classi. Gli operatori esistenti sono sovraccaricati e hanno il potere di operare sulla classe e sugli oggetti definiti dall'utente. Il sovraccarico dell'operatore si ottiene definendo la funzione con il nome speciale. La funzione avrà il nome "operatore" seguito dal simbolo dell'operatore. Possiamo utilizzare il simbolo dell'operatore direttamente sul tipo di dati definito dall'utente ed eseguire l'operazione. L'azione o l'operazione necessaria è definita in quella funzione speciale da noi. Tramite il sovraccarico dell'operatore, possiamo eseguire operazioni di diverso tipo sullo stesso tipo di tipo di dati.

Tipi di sovraccarico in C ++

Funzione Il sovraccarico può essere comunque ottenuto in termini di utilizzo dei parametri. Quando diciamo l'uso dei parametri a cui si riferisce, il tipo di parametri o il conteggio dei parametri o la sequenza dei parametri. Quindi, la funzione calc (int x, float y) con parametri (int x, float y) è diversa da una funzione definita come calc (float x, int y) che hanno parametri diversi con il diverso tipo di dati.

Vi possono essere diversi tipi di sovraccarico della funzione. Vediamo il semplice esempio di sovraccarico della funzione in C ++.

#include
using namespace std;
class Display (
public:
static void show (char message() ) (
cout<< "Only Message:" << message << endl;
)
static void show (int messageId, char message()) (
cout<< "Message with Id:";
cout << messageId << " Message:" << message << endl;
)
);
int main (void) (
Display obj;
char message() = "Welcome";
int messageId = 10;
obj.show(message); //calling overloaded function with 1 parameter
obj.show(messageId, message);//calling overloaded function with 2 parameters
return 0;
)

Qui, abbiamo la classe Display che ha uno show di metodo sovraccarico. Il metodo show verrà chiamato in base agli argomenti passati ad esso.

Produzione:

Unico messaggio: benvenuto

Un messaggio con ID: 10 Messaggio: benvenuto

Il sovraccarico dell'operatore può essere ottenuto su quasi tutti i tipi di dati integrati disponibili in C ++. Non esistono quindi diversi tipi di sovraccarico dell'operatore, ma gli approcci possono essere diversi e utilizzati per ottenere il sovraccarico dell'operatore. Operatori come Unario, Binario, Relazionale, Assegnazione, ecc. Possono essere sovraccaricati in C ++.

Vediamo il semplice esempio di sovraccarico dell'operatore ++. In questo esempio invece del tipo di dati primitivo, utilizzeremo l'operatore ++ sull'oggetto classe definito dall'utente.

#include
using namespace std;
class Bike (
private:
int height;
public:
Bike (): height (80) () //constructor which initializes the height variable
void operator ++() (
height = height + 5;
)
void Specs () (
cout << "The height of the bike is: " < )
);
int main(void)
(
Bike bike;
bike.Specs();
++bike; //calling overloaded operator
bike.Specs();
return 0;
)
#include
using namespace std;
class Bike (
private:
int height;
public:
Bike (): height (80) () //constructor which initializes the height variable
void operator ++() (
height = height + 5;
)
void Specs () (
cout << "The height of the bike is: " < )
);
int main(void)
(
Bike bike;
bike.Specs();
++bike; //calling overloaded operator
bike.Specs();
return 0;
)

Quindi, abbiamo un oggetto la cui altezza iniziale sarà impostata su 80 e verrà aumentata di 5 quando chiamiamo ++ operatore su di esso.

Produzione:

L'altezza della bici è: 80
L'altezza della bici è: 85

Regole di sovraccarico in C ++

Di seguito sono riportate le diverse regole di sovraccarico C ++ come segue:

Regole per il sovraccarico della funzione

  • Nel sovraccarico della funzione, la funzione deve differire in termini di tipo di dati, numero o sequenza di parametri. Non può differire semplicemente sulla base del tipo di funzione di ritorno.

Regole per il sovraccarico dell'operatore

  • Solo gli operatori integrati possono essere sovraccaricati, i nuovi operatori non possono essere sovraccaricati.
  • Ci sono quattro operatori che non possono essere sovraccaricati, questi sono . (selezione del membro), :: (risoluzione dell'ambito), . * (selezione del membro usando il puntatore alla funzione) e?: (operatore ternario).
  • L'operatore sovraccarico conterrà almeno un operando del tipo di dati definito dall'utente.
  • Esistono alcuni operatori che non possono essere sovraccaricati utilizzando la funzione amico, ma possono essere sovraccaricati come funzione membro.

Conclusione

Quindi, il sovraccarico in C ++ è la caratteristica unica che ci offre molteplici vantaggi. Esistono principalmente due tipi di sovraccarico, ovvero il sovraccarico della funzione e il sovraccarico dell'operatore. Il sovraccarico delle funzioni migliora la leggibilità del codice mantenendo così lo stesso nome per la stessa azione. Il sovraccarico dell'operatore consente di ridefinire le funzionalità esistenti degli operatori dando loro un significato speciale. Entrambi sono molto utili nella programmazione in C ++.

Articoli consigliati

Questa è una guida al sovraccarico in C ++. Qui discutiamo del suo funzionamento, delle regole e di due tipi di sovraccarico in c ++, ovvero il sovraccarico della funzione e il sovraccarico dell'operatore. Puoi anche leggere il seguente articolo per saperne di più -

  1. Sovraccarico in PHP
  2. Copia costruttore in C ++
  3. Sovraccarico vs Sostituzione
  4. Istruzione Switch in C ++
  5. Sovraccarico in Java
  6. Sovraccarico di Python

Categoria: