Spiegazione dell'override delle funzioni in C++

Pubblicato: 2022-11-09

Sommario

Che cos'è una funzione?

Una funzione è un pezzo che appartiene a un codice per l'esecuzione di un'attività stabilita in un programma. È importante avere una conoscenza di prima mano sull'ereditarietà per apprendere che la funzione che sovrascrive l'implementazione dell'ereditarietà è un mandato per questa funzione. Una funzione C++ è una raccolta di istruzioni unite insieme per eseguire un'attività. Tutti i programmi hanno una funzione main() e programmi particolari hanno funzioni aggiunte. La dichiarazione della funzione invia il nome della funzione, il tipo restituito ei parametri al compilatore per determinare il corpo della funzione in base alla definizione della funzione. Una funzione può essere una procedura, un metodo o una subroutine e tutte le funzioni C++ sono costituite da un'intestazione e un corpo.

Sintassi di una funzione C++:-

tipo_ritorno nome_funzione(elenco parametri) {

corpo funzionale

}

Componenti :-

  • Tipo restituito : indica il tipo di valore restituito della funzione.
  • Nome funzione : rappresenta il nome della funzione che costituisce la firma della funzione e l'elenco dei parametri.
  • Parametri- Questo è un segnaposto per il valore restituito dalla funzione. Quando viene chiamata una funzione, il valore passato al parametro è noto come parametro effettivo.
  • Corpo della funzione: il corpo della funzione comprende l'elenco di istruzioni che definiscono il compito della funzione.

Come chiamare una funzione

Una funzione deve essere invocata o chiamata prima dell'uso, dopodiché il controllo le viene trasferito per eseguire l'attività necessaria. L'istruzione return restituisce il controllo al programma principale dopo questo. I parametri e il nome della funzione devono passare per chiamare una funzione. Gli argomenti possono essere passati a una funzione in più modi durante la chiamata. I tipi di chiamata sono i seguenti:-

  • Chiamata per valore
  • Chiama per riferimento
  • Chiamata tramite puntatore

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Sovrascrittura delle funzioni in C++

L'override di C++ è un'idea tramite la quale viene definita una funzione con lo stesso nome. La funzione della classe base durante l'override viene ridefinita all'interno della classe derivata, che sovrascrive la funzione della classe base. L'implementazione del polimorfismo di runtime può anche essere definita come funzione di override. Qui, il runtime del programma ha la precedenza sulla funzione.

L'override delle funzioni consente ai programmatori di utilizzare una funzione nella classe figlia trovata nella sua classe genitore. Di conseguenza, la classe figlia eredita ogni membro dati e le funzioni membro trovate nella classe padre. Per eseguire l'override di qualsiasi funzionalità di classe figlio, è necessario implementare l'override della funzione. L'override della funzione si riferisce alla creazione di una nuova versione della funzione della classe padre all'interno della classe figlia.

Sintassi per implementare la funzione di override in C++

Quando la stessa funzione definita sia nella classe basata che in quella derivata viene chiamata utilizzando l'oggetto della classe derivata, esegue la funzione di classe derivata. Questa è la funzione di sovrascrittura in C++.

Di seguito è riportata la sintassi più utilizzata per l'implementazione della funzione di override in C++:

// Programma C++ per dimostrare l'override delle funzioni

#includi <iostream>

usando lo spazio dei nomi std;

classe Base {

pubblico:

stampa vuota() {

cout << “Funzione Base” << endl;

}

};

class Derivato : public Base {

pubblico:

stampa vuota() {

cout << “Funzione derivata” << endl;

}

};

int principale() {

Derivato derivato1;

derivato1.stampa();

restituire 0;

}

Produzione

Funzione derivata

Questo ridefinisce la funzione della classe base all'interno della classe derivata. Pertanto, il tipo restituito, i parametri_funzione e il nome_funzione devono essere gli stessi per ottenere l'override della funzione.

Corsi e articoli popolari sull'ingegneria del software

Programmi popolari
Programma Executive PG in Software Development - IIIT B Programma di certificazione Blockchain - PURDUE Programma di certificazione di sicurezza informatica - PURDUE MSC in Informatica - IIIT B
Altri articoli popolari
Stipendio per ingegnere cloud negli Stati Uniti 2021-22 Stipendio di AWS Solution Architect negli Stati Uniti Stipendio per sviluppatori back-end negli Stati Uniti Stipendio per sviluppatori front-end negli Stati Uniti
Stipendio sviluppatore Web negli Stati Uniti Domande per il colloquio con lo Scrum Master nel 2022 Come iniziare una carriera nella sicurezza informatica nel 2022? Opzioni di carriera negli Stati Uniti per gli studenti di ingegneria

Come funziona l'override delle funzioni in C++

Gli OOP devono consentire alle classi derivate di ereditare le funzionalità della classe padre. L'override delle funzioni consente ai programmatori di sovrascrivere qualsiasi funzionalità all'interno di una classe in una classe derivata specifica. Ciò è particolarmente utile quando una classe figlio necessita della sua variante di funzionalità.

Di seguito è riportato un semplice esempio di sovrascrittura di funzioni in C++ per una migliore comprensione:

#includi <iostream>

usando lo spazio dei nomi std;

classe genitore_classe

{

pubblico:

stampa del vuoto virtuale()

{

cout << “\nQuesto è il metodo print()”

"di BaseClass";

}

};

classe classe_derivata : classe_genitore pubblico

{

pubblico:

// Funzione Override – nuova definizione di

// metodo di stampa della classe base

stampa vuota()

{

cout << “\nQuesto è il metodo print()”

“della Classe Derivata”;

}

};

// Codice del driver

int principale()

{

oggetto_classe derivata;

obj.print();

}

Accedere alla funzione sottoposta a override in C++

L'operatore di risoluzione dell'ambito viene utilizzato per accedere alla funzione sottoposta a override della classe base in C++. È possibile accedere alla funzione sottoposta a override anche utilizzando un puntatore della classe base per puntare a un oggetto della classe derivata e quindi chiamare la funzione dal puntatore.

// Programma C++ per accedere alla funzione sovrascritta

// in main() usando l'operatore di risoluzione dell'ambito ::

#includi <iostream>

usando lo spazio dei nomi std;

classe Base {

pubblico:

stampa vuota() {

cout << “Funzione Base” << endl;

}

};

class Derivato : public Base {

pubblico:

stampa vuota() {

cout << “Funzione derivata” << endl;

}

};

int principale() {

Derivato derivato1, derivato2;

derivato1.stampa();

// accedi alla funzione print() della classe Base

base2.derivata::stampa();

restituire 0;

}

Produzione

Funzione derivata

Funzione di base

L'istruzione nella sintassi; base2.derivata::stampa(); dà accesso alla funzione print() della classe Base.

Chiama la funzione sovrascritta dalla classe derivata

È possibile utilizzare l'ereditarietà per modificare il comportamento di una funzione. Tuttavia, a volte, non è necessario modificare o sostituire la funzionalità della classe base/genitore. Invece, è necessario aggiungere più funzionalità.

Di seguito è riportato un esempio di utilizzo della funzione sottoposta a override di chiamata da una classe derivata.

// Programma C++ per chiamare la funzione sovrascritta

// da una funzione membro della classe derivata

#includi <iostream>

usando lo spazio dei nomi std;

classe Base {

pubblico:

stampa vuota() {

cout << “Funzione Base” << endl;

}

};

class Derivato : public Base {

pubblico:

stampa vuota() {

cout << “Funzione derivata” << endl;

// chiama la funzione sovrascritta

Base::stampa();

}

};

int principale() {

Derivato derivato1;

derivato1.stampa();

restituire 0;

}

Produzione

Funzione derivata

Funzione di base

In questo programma, la funzione sovrascritta è stata chiamata all'interno della classe Derived.

class Derivato : public Base {

pubblico:

stampa vuota() {

cout << “Funzione derivata” << endl;

Base::stampa();

}

};

Il codice Base::print();, chiama la funzione sottoposta a override all'interno della classe Derived.

Sovraccarico delle funzioni e sovrascrittura delle funzioni

È possibile ottenere l'overloading delle funzioni in fase di compilazione, generalmente eseguito all'interno delle classi derivate e di base. Fornisce più di una definizione di funzione alterando la firma di ciascuna funzione, come il tipo di dati o il tipo restituito dei parametri.

L'override della funzione, d'altra parte, può essere ottenuto in fase di esecuzione. La classe base in sovrascrittura viene ridefinita nella classe derivata con gli stessi parametri e lo stesso tipo restituito. Scopriamo insieme quali altre caratteristiche rendono diverse queste due funzioni.

Override Sovraccarico
Eredità Richiede l'eredità di classe Non richiede l'eredità di classe
Firma di funzione Differisce nella firma sia per il tipo che per il numero di parametri. Le firme delle funzioni rimangono le stesse
Ambito della funzione Le funzioni differiscono nell'ambito Possiede lo stesso ambito
Comportamento funzionale Richiesto quando una funzione di classe derivata ha prestazioni diverse o con funzionalità aggiuntive rispetto alla funzione di classe base. Richiesto quando le funzioni con lo stesso nome hanno comportamenti diversi in base ai parametri specificati.

Conclusione

L'override delle funzioni in C++ consente di risparmiare spazio in memoria e mantenere la leggibilità e la coerenza di qualsiasi codice. Aiuta anche a rendere il codice riutilizzabile facilmente. Inutile dire che la conoscenza dell'override delle funzioni è un'abilità importante da possedere se vedi un futuro per te stesso nella programmazione.

Se vuoi unirti a un corso affidabile e premium per dare il via alla tua carriera in questo campo, puoi iscriverti al Master of Science in Computer Science di upGrad su upGrad. Alcuni dei punti salienti di questo programma sono i seguenti: -

  • Scopri Stack MERN, microservizi, JavaScript, ecc.
  • Apprendimento sano su Cloud Labs
  • Sperimenta gli strumenti utilizzati su Netflix, LinkedIn, Facebook, ecc.
  • Diventa esperto in oltre 10 strumenti e linguaggi di programmazione
  • Supporto agli studenti 24 ore su 24, 7 giorni su 7

Come avviene l'override della funzione?

La funzione C++ override avviene tramite ereditarietà, cioè quando una classe eredita un'altra classe. Quando la classe derivata e la classe base possiedono funzioni membro aventi lo stesso tipo restituito, nome e elenco di argomenti, si parla di sovrascrittura della funzione.

Qual è la differenza tra l'override di funzioni e l'override di funzioni in C++?

L'override delle funzioni si verifica quando le funzioni possiedono lo stesso prototipo nelle classi base e derivate. L'overload delle funzioni viene eseguito quando in una classe esiste più di una funzione con un nome simile.

Quali sono le caratteristiche dell'overloading delle funzioni in C++?

L'overloading delle funzioni in C++ viene utilizzato principalmente per migliorare la leggibilità del codice. I programmatori lo usano in modo da non dover memorizzare numerosi nomi di funzioni. Le classi con più funzioni, parametri diversi e lo stesso nome sono chiamate Overloaded.