Koja je razlika između virtualne funkcije i nadjačavanja funkcije?
Koja je razlika između virtualne funkcije i nadjačavanja funkcije?

Video: Koja je razlika između virtualne funkcije i nadjačavanja funkcije?

Video: Koja je razlika između virtualne funkcije i nadjačavanja funkcije?
Video: Relationship between Virtual Functions, Pure Virtual Functions and Abstract Classes in OOP explained 2024, Maj
Anonim

Virtualne funkcije ne može biti statičan, a ni prijatelj funkcija druge klase. Oni su uvijek definirani u osnovnoj klasi i nadjačano u izvedenoj klasi. Nije obavezno za izvedenu klasu nadjačati (ili ponovo definisati virtualna funkcija ), u tom slučaju verzija osnovne klase funkcija se koristi.

Nadalje, koja je razlika između virtualne funkcije i čiste virtualne funkcije?

Glavni razlika između ' virtualna funkcija" i "čista virtualna funkcija ' je li to ' virtualna funkcija ' ima svoju definiciju u bazna klasa, kao i nasledne izvedene klase je redefinišu. The čista virtuelna funkcija nema definiciju u baznu klasu, a sve naslijeđene izvedene klase moraju je redefinirati.

Nakon toga, postavlja se pitanje šta je nadjačavanje funkcije u C++? Zaobilaženje C++ funkcije . Ako izvedena klasa definira isto funkcija kako je definisano u svojoj osnovnoj klasi, poznato je kao nadjačavanje funkcije u C++. Koristi se za postizanje polimorfizma vremena izvođenja. Omogućava vam da pružite specifičnu implementaciju funkcija koju već obezbeđuje njegova osnovna klasa.

Isto tako, ljudi se pitaju, zašto koristimo virtualne funkcije?

Virtuelne funkcije su korišteno da podrži " Polimorfizam vremena izvođenja". Kada je virtualna funkcija se poziva pomoću pokazivača osnovne klase, kompajler odlučuje u vremenu izvođenja koja verzija funkcija tj. treba pozvati verziju osnovne klase ili nadjačanu verziju izvedene klase. Ovo se zove polimorfizam vremena izvođenja.

Možete li nadjačati nevirtuelnu funkciju u C++?

U c++, svi članovi klase funkcije su non - virtuelno po defaultu. Oni mogu biti napravljen virtuelno korišćenjem virtuelno ključna riječ u funkcija potpis. Kao što je gore navedeno ako the funkcija bazne klase je napravljen virtuelno zatim the funkcija Derived ili Child klase funkcija sa istim imenom može nadjačati osnovne klase funkcija.

Preporučuje se: