Hvad er forskellen mellem virtuel funktion og funktionstilsidesættelse?
Hvad er forskellen mellem virtuel funktion og funktionstilsidesættelse?

Video: Hvad er forskellen mellem virtuel funktion og funktionstilsidesættelse?

Video: Hvad er forskellen mellem virtuel funktion og funktionstilsidesættelse?
Video: Difference between Function Overriding and Function Overloading in C++ -46 2024, Kan
Anonim

Virtuelle funktioner kan ikke være statisk og kan heller ikke være en ven fungere af en anden klasse. De er altid defineret i basisklasse og tilsidesat i afledt klasse. Det er ikke obligatorisk for afledt klasse at tilsidesætte (eller omdefiner virtuel funktion ), i så fald basisklasseversion af fungere anvendes.

Ydermere, hvad er forskellen mellem virtuel funktion og ren virtuel funktion?

Det vigtigste forskel mellem ' virtuel funktion' og 'ren virtuel funktion ' er det ' virtuel funktion ' har sin definition i basisklassen og også de arvende afledte klasser omdefinerer den. Det ren virtuel funktion har ingen definition i basisklassen, og alle de nedarvede afledte klasser skal omdefinere den.

Efterfølgende er spørgsmålet, hvad er funktionstilsidesættelse i C++? C++ Funktion tilsidesætter . Hvis afledt klasse definerer det samme fungere som defineret i sin basisklasse, er det kendt som funktion tilsidesætte i C++. Det bruges til at opnå runtime polymorfi. Det giver dig mulighed for at levere specifik implementering af fungere som allerede leveres af sin basisklasse.

Ligeledes spørger folk, hvorfor bruger vi virtuelle funktioner?

Virtuelle funktioner er Brugt for at støtte " Run time Polymorphism ". Når virtuel funktion kaldes ved at bruge en Base Class Pointer, beslutter compileren ved Runtime, hvilken version af fungere dvs. basisklasseversionen eller den tilsidesatte afledte klasseversion skal kaldes. Dette kaldes Run Time Polymorphism.

Kan du tilsidesætte en ikke-virtuel funktion i C++?

I c++, alle klassemedlemmer funktioner er ikke - virtuelle som standard. De kan blive lavet virtuelle ved at bruge virtuelle søgeord i fungere Underskrift. Som nævnt ovenfor hvis det fungere af basisklasse er lavet virtuelle derefter fungere af afledte eller børneklasser fungere med samme navn kan tilsidesætte basisklassens fungere.

Anbefalede: