C ++

Virtuálna funkcia C ++

Virtuálna funkcia C ++
V tomto článku sa budeme venovať virtuálnej funkcii v programovacom jazyku C ++. Na dosiahnutie runtime / dynamického polymorfizmu sa v C ++ používa virtuálna funkcia. Uvidíme niekoľko príkladov na pochopenie konceptu virtuálnej funkcie v jazyku C++.

Virtuálna funkcia je členská funkcia, ktorá je definovaná v základnej triede / nadradenej triede a nanovo definovaná v odvodenej triede. Virtuálna funkcia umožňuje volanie verzie funkcie odvodenej triedy pomocou odkazu alebo ukazovateľa na základnú triedu.

Pozrime sa na niekoľko príkladov na pochopenie pojmu virtuálna funkcia.

V prvom príklade uvidíme správanie nevirtuálnej funkcie a potom v druhom príklade vysvetlíme správanie sa virtuálnej funkcie.

Príklad 1

V nasledujúcom príklade kódu máme dve triedy: základnú triedu a odvodenú triedu.

Základná trieda má členskú funkciu, t.j.e., display (). Odvodená trieda sa dedí zo základnej triedy a predefinovala funkciu display ().

Potom sme deklarovali smerník na typ základnej triedy a priradili sme objekt odvodenej triedy. Keď teda zavoláme funkciu display () pomocou ukazovateľa typu základnej triedy, bude sa volať funkcia základnej triedy. Výstup si môžete pozrieť nižšie.

Ale v takýchto prípadoch C ++ poskytuje spôsob volania funkcie odvodenej triedy vyhlásením funkcie základnej triedy za virtuálnu. Uvidíme ďalší príklad, ktorý to pochopí.

#include
pomocou namespace std;
trieda Base_Class

verejné:
neplatné zobrazenie ()

cout << "I am in Base class" << endl;

;
trieda Derived_Class: verejná Base_Class

verejné:
neplatné zobrazenie ()

cout << "I am in Derived class" návrat 0;

Príklad 2

V tomto príklade sme v základnej triede definovali funkciu display () ako virtuálnu funkciu. Jediný rozdiel oproti predchádzajúcemu programu je v tom, že sme do základnej triedy pridali virtuálne kľúčové slovo pred „void display ()“.

Teraz, ak vidíte výstup, vytlačí sa text „Som v odvodenej triede“, čo naznačuje, že funkcia odvodenej triedy sa volá.

Virtuálne kľúčové slovo (virtuálna funkcia) v základnej triede je zodpovedné za zabezpečenie volania správnej funkcie pre objekt.

#include
pomocou namespace std;
trieda Base_Class

verejné:
zobrazenie virtuálnych prázdnin ()

cout << "I am in Base class" << endl;

;
trieda Derived_Class: verejná Base_Class

verejné:
neplatné zobrazenie ()

cout << "I am in Derived class" návrat 0;

Príklad 3

Toto je ďalší príklad virtuálnej funkcie. Ako môžete vidieť v nasledujúcom programe, definovali sme základnú triedu, t.j.e., Zviera. Existujú dve odvodené triedy: pes a krava. Funkciu eat () sme v základnej triede definovali ako virtuálnu, t.e., Zviera. Potom sme predefinovali funkciu eat () v oboch odvodených triedach, Dog a Cow.  Vo funkcii main () máme ukazovateľ základnej triedy, t.j.e., Zviera, a potom pripojil odvodenú triedu, Pes. Keď teda zavoláme funkciu eat () pomocou ukazovateľa základnej triedy, môžeme vyvolať odvodenú verziu verzie funkcie eat (), i.e., funkcia eat () z triedy Dog. Podobne, keď pripojíme objekt triedy Cow, môžeme potom vyvolať odvodenú triednu verziu funkcie eat (), t.e., funkcia eat () z triedy Krava. Toto správanie môžete zreteľne vidieť na výstupe nižšie. 

#include
pomocou namespace std;
trieda Zviera

verejné:
virtuálna prázdnota jesť ()

cout << "Animal - base class - undefined eating behavior." << endl;

;
trieda Pes: verejné Zviera

verejné:
neplatné jesť ()

cout << "Dog - eat non-veg!" << endl;

;
trieda Krava: verejné Zviera

verejné:
neplatné jesť ()

cout << "Cow - eat veg!" a_ptr = nová krava ();
a_ptr-> jesť ();
návrat 0;

Záver

V tomto článku som vysvetlil koncept virtuálnej funkcie v jazyku C++. C ++ podporuje rôzne typy polymorfizmu - statický polymorfizmus a dynamický polymorfizmus. Pomocou virtuálnej funkcie môžeme dosiahnuť runtime / dynamický polymorfizmus. V tomto článku sme sa zaoberali iba konceptom virtuálnej funkcie a tým, ako dosiahnuť runtime polymorfizmus. Vysvetlil som tri pracovné príklady na vysvetlenie virtuálnej funkcie.

Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...
Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...
Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...