Cosa è il costruttore ereditario in C ++

Cosa è il costruttore ereditario in C ++
In c++, eredità è una nozione chiave nella programmazione orientata agli oggetti. Una classe derivata può ereditare i tratti e i comportamenti di una classe di base grazie ai potenti eredità capacità in c++. Una classe derivata eredita immediatamente tutti i membri della classe di base quando è formata. È necessario che il costruttore di classe derivato iniziali anche i membri della classe base. In c++, eredità è una caratteristica potente che consente agli sviluppatori di riutilizzare il codice, migliorare l'efficienza e organizzare il codice in gerarchie logiche.

Insieme all'eredità, i costruttori sono anche essenziali in C++. UN costruttore è una funzione membro univoca che consente di inizializzare le proprietà dell'oggetto. UN Costruttore ereditarie è un costruttore usato per inizializzare sia la classe di base che gli oggetti della classe derivata che la classe derivata ha ereditato. IL costruttore ereditarie è responsabile dell'inizializzazione sia dei membri della classe base ereditaria che dei membri della classe derivata. Per raggiungere questo obiettivo, il costruttore invoca il costruttore della classe base, garantendo che tutti i membri della classe derivata siano correttamente inizializzati, compresi quelli ereditati dalla classe base.

Invocando il costruttore della classe base e passandolo i parametri necessari, il costruttore ereditarie inizializza i membri della classe base. Questo è realizzato usando il 'Base Class (Args)' Elenco di inizializzazione nel costruttore. Ulteriori istruzioni particolari per la classe derivata sono fornite nel corpo del costruttore.

La sintassi per ereditario Una classe in C ++ è:

Classe DeriDClass: AccessSpecifier Baseclass
// membri della classe
;

La nuova classe si è formata in questo caso, "Classe derivata", erediterà da "Baseclass". Il livello di accesso ai membri ereditari è specificato dal "AccessSpecifier ". C ++ utilizza tre tipi di specificatori di accesso, vale a dire "pubblico privato", E "Protezione". La parola "pubblico" indica che la classe derivata ha accesso ai membri pubblici della classe base. La classe derivata non ha accesso ai membri della classe base, secondo il 'privato' specificatore. La classe derivata ha accesso ai membri della classe base protetta che possono essere ereditati dalle loro classi di bambini, secondo il 'protetto' specificatore.

Esempio di eredità in C++

Il seguente esempio mostra l'implementazione di Eredità In C ++:

#includere
Utilizzo dello spazio dei nomi std;
Classe Animal
pubblico:
void eat ()
cout << "I can eat!" << endl;

void sleep ()
cout << "I can sleep!" << endl;

;
Class Cat: Public Animal
pubblico:
void Meow ()
cout << "I can meow!" << endl;

;
int main ()
Cat Cat1;
Cat1.mangiare();
Cat1.sonno();
Cat1.Miao();
restituzione 0;

Il codice dato definisce due classi, "Animale" E "Gatto", Dove "Gatto" è derivato da "Animale". Entrambe le classi hanno alcune funzioni dei membri, come "mangiare dormire", E "Miao". La funzione principale crea un oggetto della classe "Gatto" e chiama il ereditato funzioni dalla classe "Animale" così come la funzione specifica della classe "Gatto", che è "Miao". Il programma produce il testo alla console, indicando che il gatto può mangiare, dormire e miagolare.

Produzione

Quando viene derivata una classe, tutte le variabili dei membri della classe base e le funzioni dei membri vengono trasferite alla classe derivata. IL ereditato L'accessibilità dei membri nella classe derivata è determinata dallo specificatore di accesso. La classe derivata può anche sostituire nuove funzionalità per quelle già esistenti. Può aggiungere nuove implementazioni per i metodi della classe base e aggiungere nuove funzioni e variabili dei membri.

È fondamentale ricordare che il costruttore ereditarie deve essere utilizzato per chiamare esplicitamente il costruttore della classe base con i parametri necessari se la classe base ha un costruttore predefinito o se non è disponibile.

Conclusione

La forte caratteristica di eredità In C ++ consente alle classi di riutilizzare il codice ereditando le caratteristiche e le azioni di altre. Una caratteristica utile di C ++ costruttore ereditarie consente alle classi derivate di ereditare le proprietà, i metodi e i membri dei dati di una classe base. Con l'aggiunta di un elenco di inizializzazione per i costruttori di classe di base, è definito utilizzando la stessa sintassi di un costruttore standard. I programmatori C ++ possono ridurre al minimo la duplicazione del codice e migliorare la struttura del codice utilizzando il costruttore ereditarie. Per creare gerarchie di classe complesse nella programmazione orientata agli oggetti, è uno strumento importante.