Che cos'è il costruttore di ereditarietà in C++

Che Cos E Il Costruttore Di Ereditarieta 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 base grazie al potente eredità capacità in C++. Una classe derivata eredita immediatamente tutti i membri della classe base quando viene formata. È necessario che il costruttore della classe derivata inizializzi anche i membri della classe di base. In C++, eredità è una potente funzionalità che consente agli sviluppatori di riutilizzare il codice, migliorare l'efficienza e organizzare il codice in gerarchie logiche.

Insieme all'ereditarietà, anche i costruttori sono essenziali in C++. UN costruttore è una funzione membro univoca che consente di inizializzare le proprietà dell'oggetto. UN Costruttore di ereditarietà è un costruttore utilizzato per inizializzare sia la classe base che gli oggetti della classe derivata che la classe derivata ha ereditato. IL costruttore di ereditarietà è responsabile dell'inizializzazione sia dei membri della classe di base ereditati che dei membri della classe derivata. Per ottenere ciò, il costruttore richiama il costruttore della classe base, assicurandosi che tutti i membri della classe derivata siano correttamente inizializzati, inclusi quelli ereditati dalla classe base.

Invocando il costruttore della classe base e passandogli i parametri necessari, il costruttore di ereditarietà inizializza i membri della classe base. Ciò si ottiene utilizzando il 'classe base(args)' elenco di inizializzazione nel costruttore. Ulteriori istruzioni specifiche per la classe derivata sono fornite nel corpo del costruttore.







La sintassi per ereditare una classe in C++ è:



classe Classe derivata : accessSpecifier BaseClass {
// membri della classe
} ;

La nuova classe che si sta formando in questo caso, 'Classe derivata', erediterà da 'Classe Base'. Il livello di accesso ai membri ereditati è specificato dal “ specificatore di accesso”. C++ utilizza tre tipi di specificatori di accesso, vale a dire 'pubblico privato', E 'protetto' . 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 di base protetta che possono essere ereditati dalle loro classi figlie, secondo il 'protetto' specificatore.



Esempio di ereditarietà in C++

L'esempio seguente mostra l'implementazione di Eredità in C++:





#include
utilizzando spazio dei nomi standard ;

classe Animale {
pubblico :
vuoto mangiare ( ) {
cout << 'Posso mangiare!' << finel ;
}
vuoto sonno ( ) {
cout << 'Posso dormire!' << finel ;
}
} ;
classe Gatto : pubblico Animale {
pubblico :
vuoto Miao ( ) {
cout << 'Posso miagolare!' << finel ;
}
} ;
int principale ( ) {
Gatto cat1 ;
cat1. mangiare ( ) ;
cat1. sonno ( ) ;
cat1. Miao ( ) ;

ritorno 0 ;
}

Il codice dato definisce due classi, 'Animale' E 'Gatto' , Dove 'Gatto' è derivato da 'Animale' . Entrambe le classi hanno alcune funzioni membro, ad esempio 'mangiare dormire' , E 'Miao' . La funzione main 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 invia il testo alla console, indicando che il gatto può mangiare, dormire e miagolare.

Produzione



Quando una classe viene derivata, tutte le variabili membro e le funzioni membro della classe base 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 caratteristiche a quelle già esistenti. Può aggiungere nuove implementazioni per i metodi della classe base e aggiungere nuove funzioni e variabili membro.

È fondamentale ricordare che il costruttore di ereditarietà 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 caratteristiche e azioni da altre. Una caratteristica utile di C++ costruttore di ereditarietà consente alle classi derivate di ereditare le proprietà, i metodi e i membri dati di una classe base. Con l'aggiunta di un elenco di inizializzazione per i costruttori di classi di base, viene 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 formato costruttore di ereditarietà . Per creare gerarchie di classi complesse nella programmazione orientata agli oggetti, è uno strumento importante.