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, Svibanj
Anonim

Virtualne funkcije ne može biti statičan i također ne može biti prijatelj funkcija drugog razreda. Uvijek su definirani u osnovnoj klasi i nadjačana u izvedenoj klasi. Za izvedenu klasu nije obvezno nadjačati (ili ponovno definirajte virtualna funkcija ), u tom slučaju verzija osnovne klase funkcija koristi se.

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, a također i naslijeđene izvedene klase je redefiniraju. The čista virtualna funkcija nema definiciju u osnovnu klasu, a sve naslijeđene izvedene klase moraju je redefinirati.

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

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

Virtualne funkcije su korišteni podržavati " Polimorfizam vremena izvođenja". Kada virtualna funkcija se poziva korištenjem pokazivača osnovne klase, prevodilac odlučuje u vremenu izvođenja koja verzija funkcija tj. Pozvati će se verzija osnovne klase ili nadjačana verzija izvedene klase. To se naziva polimorfizam vremena izvođenja.

Možete li nadjačati funkciju koja nije virtualna u C++?

U C++, svi članovi klase funkcije su ne - virtualan prema zadanim postavkama. Oni limenka biti napravljen virtualan korištenjem virtualan ključna riječ u funkcija potpis. Kao što je gore navedeno ako the funkcija izrađuje se osnovne klase virtualan onda funkcija Derived ili Child klase funkcija s istim imenom može nadjačati osnovne klase funkcija.

Preporučeni: