Pura funzione virtuale in C ++

Pura funzione virtuale in C ++
Una pura funzione virtuale nel linguaggio di programmazione C ++ è un concetto ampiamente noto nell'eredità di C ++. Questa funzione virtuale può essere utilizzata nella classe astratta. Può essere dichiarato solo nella classe astratta e non può essere definito. Il valore della dichiarazione per la funzione virtuale pura è 0. Pertanto, questo articolo è implementato per determinare come la funzione virtuale pura può essere dichiarata nella classe base e definita nella classe derivata.

Nota: il sistema operativo utilizzato in questo tutorial è Ubuntu 20.04. È possibile utilizzare altri sistemi Linux o Windows. Il compilatore G ++ è stato utilizzato per l'implementazione di esempi.

Esempio 01

Stiamo iniziando con un semplice esempio per illustrare il funzionamento generale e la struttura di una pura funzione virtuale nella classe C ++. Devi sapere che una classe astratta non occupa alcun oggetto, io.e., non istanziato. Tuttavia, possiamo usare puntatori o riferimenti per accedere a questa classe e alle sue funzioni. Quindi, crea un nuovo file C ++ con l'aiuto di "tocco"Interrogazione e aprilo con un editore, come Nano Editor.

$ touch puro.cc
$ nano puro.cc

Ogni codice C ++ inizia con l'intestazione del flusso input-output inclusa in esso. Lo standard dello spazio dei nomi deve essere dichiarato dopo. Una classe astratta è stata inizializzata denominata "genitore". Contiene un'unica dichiarazione di funzione virtuale pura chiamata "spettacolo()". Questa funzione pura è stata inizializzata con 0. La classe derivata chiamata "Bambino"È stato inizializzato. Questa classe figlio ha acceduto alla classe principale durante l'utilizzo come interfaccia. La classe figlio contiene la definizione di un metodo show (). Il metodo show () ha visualizzato un po 'di testo con "cout"Clausola. Ecco che arriva il metodo principale (). Tutto il lavoro dovrebbe iniziare da qui:

All'inizio di un metodo principale (), il puntatore della classe genitore "*P" è stato creato. Poiché la classe genitore è astratta, non possiamo creare il suo oggetto. La classe figlio è stata iniziata con l'oggetto "C". Il puntatore "*P"Della classe genitore ha acceduto all'indirizzo dell'oggetto di classe figlio"C". Quindi il puntatore "*P"Chiama la funzione virtuale pura"spettacolo()"Per riferimento. Dopo aver salvato il codice virtuale puro C ++, compilalo con il pacchetto compilatore G ++. Non sono stati trovati errori finora. Dopo aver eseguito il file, abbiamo ottenuto il seguente output:

$ g ++ puro.cc
$ ./UN.fuori

Il risultato di questa illustrazione può essere analizzato nell'immagine allegata sopra.

Esempio 02

Diamo un'occhiata a un altro esempio di utilizzo di una funzione virtuale pura in C++. Faremo alcuni calcoli matematici nel puro metodo virtuale. Quindi, inizia aprendo lo stesso file e modificalo un po '. Aggiungere il pacchetto di intestazione del flusso di input-output e utilizzare anche lo spazio dei nomi standard nel codice. Abbiamo dichiarato una classe astratta chiamata "Risultato"Dopo lo spazio dei nomi. Questa classe contiene una variabile di tipo intero protetto denominata "punto"Utilizzato per ottenere segni dall'utente.

Un semplice metodo di tipo pubblico è stato definito nella classe astratta chiamata "getScore ()". IL "cout"La clausola in questo metodo richiede all'utente di inserire alcuni punteggi. Le funzioni otterrebbero i segni dall'utente come input tramite "Cin"Clausola. Quindi, la pura funzione virtuale "percentuale()"È dichiarato a 0 qui. La classe derivata "Stato"È definito per ottenere la percentuale dello studente accedendo alla classe principale come interfaccia. Lo "stato" della classe figlio contiene la definizione di un metodo virtuale puro "percentuale()" dentro:

La percentuale di funzione virtuale pura () sta calcolando la percentuale di segni degli studenti. Questa percentuale si trova con l'aiuto di una formula percentuale che utilizza i segni di uno studente. I segni sono stati ottenuti dalla variabile "punto"Avere segni inseriti dall'utente. La funzione principale () contiene la creazione di oggetti della classe figlio. Questo oggetto viene utilizzato per chiamare il metodo getScore () per acquisire segni dall'utente. Lo stesso oggetto viene utilizzato per chiamare la funzione percentuale () per calcolare la percentuale di marchi inseriti dall'utente.

Salviamo prima il codice ed esci dal file utilizzando "Ctrl+s" E "Ctrl+s"Rispettivamente.

Dopo essere tornato al terminale, compilare prima il codice con il pacchetto compilatore G ++. Dopodiché, esegui il file con "UN.fuori"Query. Ti chiederà di inserire i tuoi voti. Abbiamo aggiunto tre segni diversi ad ogni esecuzione e abbiamo ottenuto tre diverse percentuali ogni volta.

$ g ++ puro.cc
$ ./UN.fuori

Il risultato di questa illustrazione può essere analizzato nell'immagine allegata sopra.

Conclusione

Infine, abbiamo usato gli esempi di utilizzo di una funzione virtuale pura nella classe astratta C ++. Abbiamo usato classi astratte e derivate per illustrare il concetto di pura funzione virtuale. Sulla base delle informazioni fornite, riteniamo che da ora sarà facile lavorare su funzioni virtuali pure. Grazie per aver letto questo articolo e per favore controlla gli altri articoli forniti da Linuxhint.com.