Call Base Class Function in C ++

Call Base Class Function in C ++
Esiste un concetto di eredità in molti linguaggi di programmazione come C++. Ti offrirà l'opportunità di utilizzare le classi di bambini nel tuo programma che sono derivate dalle rispettive classi di base. Una classe figlio può accedere ai membri dei dati della sua specifica classe base, i.e., variabili e metodi. All'interno di questa guida, discuteremo di diversi modi per eseguire o chiamare la funzione di chiamata di base in C++. Quindi, iniziamo con il lancio della console terminale di Ubuntu 20.04 Sistema operativo Linux utilizzando il tasto di scelta rapida "Ctrl+Alt+T" sul suo desktop. Diamo un'occhiata ad alcuni dei semplici esempi per chiamare un metodo di base in C ++ ora.

Esempio 01:

Il primo esempio è iniziato con la generazione di un nuovo file C ++ che verrà utilizzato per creare un codice. L'istruzione "touch" molto conosciuta viene utilizzata qui per creare la "base.file cc ". Questo file deve essere aperto all'interno di alcuni editor già integrati in Ubuntu 20.04 Sistema, i.e., Vim, Nano o editore di testo. Abbiamo scelto l'editore "nano" per aprirlo.

Il codice è stato avviato dall'inclusione di alcuni file di intestazione necessari di C ++ come "iostream" e "bit/stdc++.H". Il file è aperto nell'editor GNU Nano vuoto di Ubuntu 20.04 Sistema. Il linguaggio C ++ usa lo spazio dei nomi "STD" per utilizzare le clausole "COUT" e "CIN" per la visualizzazione e l'ottenimento di input. Abbiamo iniziato una nuova classe, "A" con un metodo pubblico show (). Questa funzione contiene una singola istruzione cout per visualizzare che si tratta di una funzione di classe principale in esecuzione in questo momento. Dopo questa classe, abbiamo creato una nuova classe, "B" ereditato dalla classe "A". Ciò significa che la Classe B è una classe bambino di Classe A e può ereditare le sue proprietà. La classe "B" contiene anche una funzione di tipo pubblico denominato "Display ()". Questa funzione utilizza qui un'unica istruzione "cout" per visualizzare che questa funzione è stata eseguita all'interno della classe figlio di questo programma. Ora, la classe figlio è terminata qui. Abbiamo iniziato il metodo principale () qui per eseguire le classi.

Ora, proveremo a chiamare la funzione "Mostra" della Classe Parente A senza creare il suo oggetto. A tale scopo useremo l'oggetto della classe B figlio. Quindi, all'interno della funzione principale (), abbiamo creato un oggetto "OBJ" della classe B di figlio B usando il "punto" tra il nome della classe e il nome dell'oggetto. Questo oggetto "OBJ" è stato utilizzato qui con il cartello "Dot" per chiamare la funzione "show ()" della classe genitore denominata "A". Non stiamo usando questo oggetto per chiamare la funzione di un bambino di classe B. Se la Classe B figlio B ha contenuto una funzione del costruttore, tale funzione del costruttore verrà eseguita subito dopo aver creato un oggetto. Questo è il concetto di eredità usando un oggetto della classe figlio per chiamare la funzione della rispettiva classe genitore. Così è come lo facciamo. Salviamo e lascia il codice con CTRL+S e CTRL+X.

Dopo aver salvato il codice, siamo tornati nella shell del terminale. Prima dell'esecuzione, il codice deve essere compilato sulla shell con un compilatore C ++. Ubuntu 20.04 è in arrivo con un compilatore "G ++" che può essere installato con il pacchetto "Apt". Quindi, abbiamo usato questo compilatore "G ++" per compilare il file appena realizzato e quindi eseguito con "./UN.fuori "Ubuntu 20.04 Istruzioni. In cambio, è stata eseguita la funzione di classe principale "show ()" e abbiamo ricevuto il messaggio di visualizzazione.

Esempio 02:

Il nostro primo esempio è stato chiamare una funzione da una classe di base che contiene un nome univoco in generale il codice. Ma cosa farai quando entrambe le classi genitori e figlio contengono lo stesso nome con gli stessi parametri e tipi di ritorno? Diamo un'occhiata a questo metodo per chiamare una funzione di classe base. Dopo i file di intestazione e lo spazio dei nomi, abbiamo dichiarato due classi, A e B. A è la classe genitore di B e la classe B deriva le proprietà della Classe Parente A. Entrambe le classi A e B contengono una funzione "Same ()" con lo stesso nome e la stessa implementazione separatamente. L'implementazione di entrambe le funzioni contiene l'istruzione Cout che mostra se è stato eseguito il metodo della classe genitore o il metodo della classe figlio.

Abbiamo usato la funzione Chiamata per il metodo di classe A genitore "Same ()" all'interno del bambino di classe B usando il segno "::" all'ultima riga. Questo per evitare l'inconveniente che potrebbe essere causato quando un oggetto chiamerà lo stesso nome funzione. Quindi, all'interno della funzione principale (), abbiamo creato un oggetto "B" della classe figlio "B". Questo oggetto "B" viene utilizzato per chiamare la funzione "uguale" del bambino di classe B. Quando un utente cerca di chiamare lo stesso nome funzione della classe genitore con lo stesso oggetto, lancerà un'eccezione. A causa dell'uso della funzione di funzione "A :: Same" nella funzione della classe figlio, eviterà l'eccezione e non è necessario creare un nuovo oggetto. Salva il tuo codice e lascia l'editor.

La compilazione e l'esecuzione del codice aggiornato ci portano all'output seguente. Puoi vedere che entrambe le funzioni dello stesso nome del figlio e della classe genitore sono eseguite con un singolo oggetto.

Esempio 03:

Vediamo un altro metodo per chiamare la funzione di chiamata di base nello stesso nome in c++. Quindi, abbiamo aggiornato lo stesso codice. I file di intestazione, lo spazio dei nomi, i genitori e i figli sono invariati, i.e., non aggiornato. L'unico aggiornamento è stato effettuato nel metodo "main ()" di questo codice. Abbiamo creato due oggetti, B1 e B2, della classe figlio "B". L'oggetto B1 sta chiamando direttamente la funzione "show ()" della classe figlio. Mentre l'oggetto B2 chiama la funzione di Show () di Classe Parent Using Il segno "::" tra il nome della classe e il nome della funzione. Eseguiamo questo codice dopo averlo salvato.

Il risultato di questa esecuzione del codice ha funzionato correttamente e possiamo vedere che la funzione della classe base è anche chiamata usando l'oggetto della classe figlio "B2".

Esempio 04:

L'ultimo esempio è abbastanza diverso da tutti gli esempi sopra. Il codice complessivo è invariato mentre la funzione principale () è stata aggiornata poco. Abbiamo creato un oggetto "b" della classe B figlio B. Questo oggetto "B" chiama la funzione della classe figlio "uguale". Quindi ha creato un puntatore "P" della classe base "A" che ha indicato l'oggetto "B" della classe B figlio B. Questo puntatore viene quindi utilizzato per chiamare la stessa funzione () della classe A. Eseguiamo questo codice e vediamo i risultati.

Dopo aver eseguito questo codice puntatore aggiornato, abbiamo visto che la funzione di classe base è stata eseguita usando il puntatore dopo aver eseguito il metodo della classe figlio. Così è come lo facciamo.

Conclusione:

Questo articolo è un super bonus per gli utenti che sono alla ricerca di concetti di eredità. Ha dimostrato una funzione di classe base chiamante usando l'oggetto della classe figlio o la classe genitore oggetto. D'altra parte, abbiamo anche utilizzato il concetto di puntatori per chiamare la funzione della classe base dalla funzione principale di un programma.