Qual è la differenza tra la funzione virtuale e l'override della funzione?
Qual è la differenza tra la funzione virtuale e l'override della funzione?

Video: Qual è la differenza tra la funzione virtuale e l'override della funzione?

Video: Qual è la differenza tra la funzione virtuale e l'override della funzione?
Video: OVERRIDE & OVERLOADING - PROGRAMMAZIONE #12 | Vita Da Founder 2024, Novembre
Anonim

Funzioni virtuali non può essere statico e nemmeno può essere un amico funzione di un'altra classe. Sono sempre definiti nella classe base e sovrascritto in classe derivata. Non è obbligatorio per la classe derivata per oltrepassare (o ridefinire il funzione virtuale ), in tal caso la versione della classe base di funzione viene utilizzato.

Inoltre, qual è la differenza tra funzione virtuale e funzione virtuale pura?

Il principale differenza tra ' funzione virtuale" e "funzione virtuale pura "' è questo ' funzione virtuale 'ha la sua definizione nel classe base e anche le classi derivate ereditarie la ridefiniscono. Il pura funzione virtuale non ha definizione nel classe base e tutte le classi derivate che ereditano devono ridefinirla.

Successivamente, la domanda è: cos'è l'override della funzione in C++? Sostituzione delle funzioni C++ . Se la classe derivata definisce lo stesso funzione come definito nella sua classe base, è noto come sostituzione della funzione in C++. Viene utilizzato per ottenere il polimorfismo di runtime. Consente di fornire un'implementazione specifica del funzione che è già fornito dalla sua classe base.

Allo stesso modo, le persone si chiedono, perché usiamo le funzioni virtuali?

Funzioni virtuali sono Usato per supportare il "Polimorfismo di runtime". Quando il funzione virtuale viene chiamato utilizzando un Base Class Pointer, il compilatore decide in fase di runtime quale versione del funzione vale a dire che deve essere chiamata la versione della classe base o la versione della classe derivata sovrascritta. Questo è chiamato Polimorfismo in tempo di esecuzione.

Puoi sovrascrivere una funzione non virtuale in C++?

In c++, tutti i membri della classe funzioni sono non - virtuale per impostazione predefinita. Essi Potere essere fatto virtuale usando il virtuale parola chiave nel funzione firma. Come sopra Se il funzione della classe base è fatto virtuale poi il funzione di classe derivata o figlio funzione con lo stesso nome può ignorare la classe Base funzione.

Consigliato: