Mi a különbség a virtuális függvény és a funkció felülbírálása között?
Mi a különbség a virtuális függvény és a funkció felülbírálása között?

Videó: Mi a különbség a virtuális függvény és a funkció felülbírálása között?

Videó: Mi a különbség a virtuális függvény és a funkció felülbírálása között?
Videó: Relationship between Virtual Functions, Pure Virtual Functions and Abstract Classes in OOP explained 2024, Lehet
Anonim

Virtuális funkciók nem lehet statikus és nem lehet barát sem funkció egy másik osztályból. Ezek mindig az alaposztályban és a felülírva származtatott osztályban. A származtatott osztályok számára nem kötelező felülbírálni (vagy definiálja újra a virtuális funkció ), ebben az esetben az alaposztályú verzió funkció használt.

Továbbá mi a különbség a virtuális funkció és a tiszta virtuális függvény között?

A fő a különbség köztük ' virtuális függvény” és „tiszta virtuális függvény ' az, hogy a ' virtuális funkció ' megvan a maga definíciója ban,-ben alaposztály és az öröklődő származtatott osztályok is újradefiniálják. Az tiszta virtuális funkció nincs definíciója ban,-ben alaposztály, és az összes öröklő származtatott osztálynak újra kell definiálnia azt.

Ezt követően a kérdés az, hogy mi a függvény felülbírálása C++-ban? C++ függvény felülbírálása . Ha a származtatott osztály ugyanazt definiálja funkció az alaposztályában definiált módon az úgynevezett funkció felülbírálása C++ nyelven. Futásidejű polimorfizmus elérésére használják. Lehetővé teszi, hogy konkrét megvalósítást biztosítson a funkció amelyet már alaposztálya biztosít.

Hasonlóképpen azt kérdezik az emberek, hogy miért használunk virtuális függvényeket?

Virtuális funkciók vannak használt a "futásidejű polimorfizmus" támogatására. Amikor az virtuális funkció egy Base Class Pointer használatával hívják meg, a fordító futás közben dönti el, hogy melyik verziója funkció azaz a Base Class verziót vagy a felülírt származtatott osztály verziót kell meghívni. Ezt futásidejű polimorfizmusnak hívják.

Felülírhat egy nem virtuális függvényt C++-ban?

A c++ nyelven az összes osztálytag funkciókat vannak nem - virtuális alapértelmezés szerint. Ők tud tenni virtuális segítségével virtuális kulcsszó a funkció aláírás. Ahogy a fentiekben írják ha az funkció alaposztályú készül virtuális aztán a funkció származtatott vagy gyermek osztály funkció azonos névvel felülírhatja az Alap osztályé funkció.

Ajánlott: