Wat is die verskil tussen virtuele funksie en funksie-oorheersing?
Wat is die verskil tussen virtuele funksie en funksie-oorheersing?

Video: Wat is die verskil tussen virtuele funksie en funksie-oorheersing?

Video: Wat is die verskil tussen virtuele funksie en funksie-oorheersing?
Video: John Vervaeke: Psychedelics, Evil, & Buddhism 2024, April
Anonim

Virtuele funksies kan nie staties wees nie en kan ook nie 'n vriend wees nie funksie van 'n ander klas. Hulle word altyd gedefinieer in basisklas en oorskryf in afgeleide klas. Dit is nie verpligtend vir afgeleide klas om ignoreer (of herdefinieer die virtuele funksie ), in daardie geval basisklas weergawe van funksie is gebruik.

Verder, wat is die verskil tussen virtuele funksie en suiwer virtuele funksie?

Die hoof verskil tussen ' virtuele funksie' en 'suiwer virtuele funksie 'is dit' virtuele funksie ' het sy definisie in die basisklas en ook die oorerflike afgeleide klasse herdefinieer dit. Die suiwer virtuele funksie het geen definisie nie in die basisklas, en al die oorerflike afgeleide klasse moet dit herdefinieer.

Gevolglik is die vraag, wat is funksie-oorheersing in C++? C++ Funksie oorheersing . As afgeleide klas definieer dieselfde funksie soos gedefinieer in sy basisklas, staan dit bekend as funksie oorheersend in C++. Dit word gebruik om runtime polimorfisme te bereik. Dit stel jou in staat om spesifieke implementering van die funksie wat reeds deur sy basisklas verskaf word.

Net so, vra mense, hoekom gebruik ons virtuele funksies?

Virtuele funksies is gebruik word om " Run time Polymorphism " te ondersteun. Wanneer die virtuele funksie geroep word deur 'n Basisklaswyser te gebruik, besluit die samesteller tydens Runtime watter weergawe van die funksie d.w.s. Basisklasweergawe of die oorheerste Afgeleide Klasweergawe moet genoem word. Dit word Runtime Polymorphism genoem.

Kan jy 'n nie-virtuele funksie in C++ ignoreer?

In c++, al die klaslede funksies is nie - virtuele by verstek. Hulle kan gemaak word virtuele deur die gebruik van die virtuele sleutelwoord in die funksie handtekening. Soos hierbo genoem as die funksie van basisklas gemaak word virtuele Dan die funksie van Afgeleide of Kinderklas funksie met dieselfde naam kan oorskryf die basisklas s'n funksie.

Aanbeveel: