Kuo skiriasi virtuali funkcija ir funkcijos nepaisymas?
Kuo skiriasi virtuali funkcija ir funkcijos nepaisymas?

Video: Kuo skiriasi virtuali funkcija ir funkcijos nepaisymas?

Video: Kuo skiriasi virtuali funkcija ir funkcijos nepaisymas?
Video: Difference between Function Overriding and Function Overloading in C++ -46 2024, Lapkritis
Anonim

Virtualios funkcijos negali būti statiškas ir negali būti draugas funkcija kitos klasės. Jie visada apibrėžiami bazinėje klasėje ir nepaisoma išvestinėje klasėje. Išvestinei klasei tai nėra privaloma nepaisyti (arba iš naujo apibrėžkite virtualią funkciją ), tokiu atveju bazinės klasės versija funkcija yra naudojamas.

Be to, kuo skiriasi virtuali funkcija ir gryna virtuali funkcija?

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.

Vėliau kyla klausimas, kas yra C++ funkcijos nepaisymas? C++ funkcijų nepaisymas . Jei išvestinė klasė apibrėžia tą patį funkcija kaip apibrėžta pagrindinėje klasėje, ji žinoma kaip funkcijos nepaisymas C++ kalboje. Jis naudojamas vykdymo laiko polimorfizmui pasiekti. Tai leidžia jums pateikti konkretų įgyvendinimą funkcija kurią jau suteikia jo bazinė klasė.

Taip pat žmonės klausia, kodėl mes naudojame virtualias funkcijas?

Virtualios funkcijos yra naudojamas palaikyti „Vykdymo laiko polimorfizmą“. Kai virtualią funkciją iškviečiamas naudojant bazinės klasės žymeklį, kompiliatorius vykdymo metu nusprendžia, kuri versija funkcija y., turi būti iškviesta pagrindinės klasės versija arba nepaisoma išvestinės klasės versija. Tai vadinama vykdymo laiko polimorfizmu.

Ar galite nepaisyti ne virtualios funkcijos C++?

C++ kalboje visi klasės nariai funkcijas yra ne - virtualus pagal nutylėjimą. Jie gali būti padaryta virtualus naudojant virtualus raktinis žodis funkcija parašas. Kaip minėta aukščiau jeigu į funkcija pagaminta bazinės klasės virtualus tada funkcija išvestinių arba vaikų klasės funkcija tuo pačiu vardu gali nepaisyti Bazinės klasės funkcija.

Rekomenduojamas: