Ano ang pagkakaiba sa pagitan ng virtual function at overriding ng function?
Ano ang pagkakaiba sa pagitan ng virtual function at overriding ng function?

Video: Ano ang pagkakaiba sa pagitan ng virtual function at overriding ng function?

Video: Ano ang pagkakaiba sa pagitan ng virtual function at overriding ng function?
Video: Ano ang Kooperatiba? 2024, Nobyembre
Anonim

Mga virtual na function hindi maaaring maging static at hindi rin maaaring maging isang kaibigan function ng ibang klase. Palagi silang tinukoy sa base class at na-override sa nagmula na klase. Ito ay hindi sapilitan para sa nagmula na klase upang override (o muling tukuyin ang virtual function ), sa kasong iyon base class na bersyon ng function Ginagamit.

Higit pa rito, ano ang pagkakaiba sa pagitan ng virtual function at purong virtual function?

Pangunahing pagkakaiba sa pagitan ng ' virtual function' at 'pure virtual function ' iyan ba ' virtual function ' ay may kahulugan nito nasa base class at gayundin ang inheriting derived classes muling tukuyin ito. Ang purong virtual function walang definition nasa base class, at lahat ng nagmana na nagmula na mga klase ay kailangang muling tukuyin ito.

Kasunod nito, ang tanong ay, ano ang function na overriding sa C++? Overriding ng Function ng C++ . Kung ang nagmula na klase ay tumutukoy sa pareho function gaya ng tinukoy sa base class nito, ito ay kilala bilang pag-override ng function sa C++. Ito ay ginagamit upang makamit ang runtime polymorphism. Binibigyang-daan ka nitong magbigay ng partikular na pagpapatupad ng function na ibinigay na ng batayang klase nito.

Gayundin, ang mga tao ay nagtatanong, bakit tayo gumagamit ng mga virtual function?

Mga Virtual na Pag-andar ay ginamit upang suportahan ang " Run time Polymorphism". Kapag ang virtual function ay tinatawag sa pamamagitan ng paggamit ng Base Class Pointer, ang Compiler ang magpapasya sa Runtime kung aling bersyon ng function ibig sabihin, ang bersyon ng Base Class o ang overridden na bersyon ng Derived Class ay tatawagin. Ito ay tinatawag na Run time Polymorphism.

Maaari mo bang i-override ang isang hindi virtual na function sa C++?

Sa c++, lahat ng miyembro ng klase mga function ay hindi - virtual bilang default. sila pwede gagawin virtual sa pamamagitan ng paggamit ng virtual keyword sa function pirma. Gaya ng nakasaad sa itaas kung ang function ng base class ay ginawa virtual pagkatapos ay ang function ng Derived or Child class's function na may parehong pangalan maaaring i-override ang Base class's function.

Inirerekumendang: