Aký je rozdiel medzi virtuálnou funkciou a čistou virtuálnou funkciou v C++?
Aký je rozdiel medzi virtuálnou funkciou a čistou virtuálnou funkciou v C++?

Video: Aký je rozdiel medzi virtuálnou funkciou a čistou virtuálnou funkciou v C++?

Video: Aký je rozdiel medzi virtuálnou funkciou a čistou virtuálnou funkciou v C++?
Video: Даниэл Уолперт: Для чего на самом деле нужен мозг 2024, Smieť
Anonim

Hlavný rozdiel medzi ' virtuálna funkcia“a „čistá virtuálna funkcia 'je to' virtuálna funkcia “má svoju definíciu v základná trieda a tiež zdedené odvodené triedy ju predefinujú. The čistá virtuálna funkcia nemá definíciu v základnú triedu a všetky zdedené odvodené triedy ju musia predefinovať.

Čo je týmto spôsobom čistá virtuálna funkcia C++?

Čisté virtuálne funkcie a abstraktné triedy v C++ Nemôžeme vytvárať objekty abstraktných tried. A čistá virtuálna funkcia (alebo abstraktné funkciu ) v C++ je a virtuálna funkcia pre ktoré nemáme implementáciu, iba to deklarujeme. A čistá virtuálna funkcia sa deklaruje priradením 0 v deklarácii.

Okrem vyššie uvedeného, čo je virtuálna funkcia a virtuálna trieda? A virtuálna funkcia je členom funkciu v rámci základne trieda ktoré predefinujeme v odvodenom trieda . Deklaruje sa pomocou virtuálne kľúčové slovo. Keď trieda obsahujúce virtuálna funkcia je zdedený, odvodený trieda nanovo definuje virtuálna funkcia vyhovovať jeho vlastným potrebám.

Čo je v tomto ohľade virtuálna a čistá virtuálna funkcia vysvetlená na príklade?

A čistá virtuálna funkcia je a funkciu ktorá musí byť prepísaná v odvodenej triede a nemusí byť definované . A virtuálna funkcia je vyhlásený za „ čistý ” pomocou zvláštnej syntaxe =0. Pre príklad : class Base {

Aké je použitie virtuálnych funkcií?

Virtuálne funkcie zabezpečiť, že správne funkciu sa volá pre objekt, bez ohľadu na typ odkazu (alebo ukazovateľa), na ktorý sa používa funkciu hovor. Funkcie sú deklarované s a virtuálne kľúčové slovo v základnej triede. Riešenie funkciu hovor sa uskutoční v čase spustenia.