Kuo skiriasi virtualioji funkcija nuo grynos virtualios funkcijos C++?
Kuo skiriasi virtualioji funkcija nuo grynos virtualios funkcijos C++?

Video: Kuo skiriasi virtualioji funkcija nuo grynos virtualios funkcijos C++?

Video: Kuo skiriasi virtualioji funkcija nuo grynos virtualios funkcijos C++?
Video: High Density 2022 2024, Gegužė
Anonim

Pagrindinis skirtumas tarp ' virtuali funkcija“ir „gryna virtuali funkcija 'ar tai' virtualią funkciją “turi savo apibrėžimą viduje konors bazinė klasė ir taip pat paveldimos išvestinės klasės ją iš naujo apibrėžia. The gryna virtuali funkcija neturi apibrėžimo viduje konors bazinė klasė, o visos paveldinčios išvestinės klasės turi ją iš naujo apibrėžti.

Tokiu būdu, kas yra gryna virtuali funkcija C++?

Grynos virtualios funkcijos ir abstrakčios klasės C++ Negalime kurti abstrakčių klasių objektų. A gryna virtuali funkcija (arba abstrakčiai funkcija ) in C++ yra virtualią funkciją kurių įgyvendinimo neturime, tik deklaruojame. A gryna virtuali funkcija deklaruojamas priskiriant deklaracijoje 0.

Be to, kas yra virtuali funkcija ir virtuali klasė? A virtualią funkciją yra narys funkcija bazės viduje klasė kuriuos iš naujo apibrėžiame išvestinėje klasė . Jis deklaruojamas naudojant virtualus raktažodį. Kada klasė kuriuose yra virtualią funkciją yra paveldima, išvestinė klasė iš naujo apibrėžia virtualią funkciją kad atitiktų savo poreikius.

Šiuo atžvilgiu, kas yra virtuali ir gryna virtuali funkcija, paaiškinkite pavyzdžiu?

A gryna virtuali funkcija yra funkcija kurios turi būti nepaisomos išvestinėje klasėje ir neturi būti apibrėžta . A virtualią funkciją paskelbta kaip „ grynas “naudojant keistą =0 sintaksę. Dėl pavyzdys : klasė Bazė {

Kuo naudingos virtualios funkcijos?

Virtualios funkcijos užtikrinti, kad būtų teisinga funkcija iškviečiamas objektui, neatsižvelgiant į naudojamą nuorodos (arba rodyklės) tipą funkcija skambinti. Funkcijos yra deklaruojami su a virtualus raktinis žodis bazinėje klasėje. Išsprendimas funkcija skambutis atliekamas vykdymo metu.