C ++

Navidezna funkcija C ++

Navidezna funkcija C ++
V tem članku bomo razpravljali o virtualni funkciji v programskem jeziku C ++. V C ++ se za doseganje polimorfizma med izvajanjem in dinamiko uporablja navidezna funkcija. Videli bomo več primerov za razumevanje koncepta navidezne funkcije v jeziku C++.

Navidezna funkcija je funkcija člana, ki je definirana v osnovnem razredu / nadrejenem razredu in ponovno definirana v izpeljanem razredu. Navidezna funkcija omogoča klicanje izvedene različice razreda funkcije z uporabo sklica ali kazalca na osnovni razred.

Oglejmo si nekaj primerov za razumevanje koncepta navidezne funkcije.

V prvem primeru bomo videli vedenje navidezne funkcije, nato pa v drugem primeru razložili obnašanje navidezne funkcije.

Primer 1

V naslednjem primeru kode imamo dva razreda: osnovni razred in izvedeni razred.

Osnovni razred ima funkcijo člana, tj.e., zaslon (). Izpeljani razred je podedovan od osnovnega razreda in je na novo definiral funkcijo display ().

Nato smo razglasili kazalec na tip osnovnega razreda in dodelili objekt izpeljanega razreda. Ko torej pokličemo funkcijo display () z uporabo kazalca tipa osnovnega razreda, bo poklicana funkcija osnovnega razreda. Rezultate si lahko ogledate spodaj.

Toda v takih primerih C ++ ponuja način za klic izvedene funkcije razreda z razglasitvijo funkcije osnovnega razreda kot navidezne. Videli bomo še en primer za razumevanje tega.

#include
uporaba imenskega prostora std;
razred Base_Class

javno:
prikaz praznine ()

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

;
razred Derived_Class: javni Base_Class

javno:
prikaz praznine ()

cout << "I am in Derived class" vrnitev 0;

2. primer

V tem primeru smo funkcijo display () definirali kot navidezno funkcijo v osnovnem razredu. Edina razlika od prejšnjega programa je ta, da smo v osnovni razred dodali virtualno ključno besedo pred “void display ()”.

Če vidite izhod, se natisne "Sem v izpeljanem razredu", kar pomeni, da je funkcija izpeljanega razreda poklicana.

Navidezna ključna beseda (navidezna funkcija) v osnovnem razredu je odgovorna za zagotovitev, da je za objekt poklicana prava funkcija.

#include
uporaba imenskega prostora std;
razred Base_Class

javno:
prikaz navidezne praznine ()

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

;
razred Derived_Class: javni Base_Class

javno:
prikaz praznine ()

cout << "I am in Derived class" vrnitev 0;

3. primer

To je še en primer navidezne funkcije. Kot lahko vidite v spodnjem programu, smo opredelili osnovni razred, tj.e., Žival. Obstajata dva izpeljana razreda: pes in krava. Funkcijo eat () smo v osnovnem razredu opredelili kot navidezno, tj.e., Žival. Nato smo na novo opredelili funkcijo eat () v obeh izpeljanih razredih, Dog in Cow.  V funkciji main () imamo kazalec osnovnega razreda, tj.e., Žival in nato priložili izpeljani razred, pes. Torej, ko pokličemo funkcijo eat () z uporabo kazalca osnovnega razreda, lahko prikličemo izvedeno različico funkcije eat (), i.e., funkcijo eat () iz razreda Dog. Podobno lahko, ko priključimo objekt razreda Cow, nato prikličemo izvedeno različico razreda funkcije eat (), i.e., funkcijo eat () iz razreda Cow. To vedenje lahko jasno vidite v spodnjem izhodu. 

#include
uporaba imenskega prostora std;
razred Žival

javno:
virtualna praznina jesti ()

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

;
razred Pes: javna Žival

javno:
void eat ()

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

;
razred Krava: javna žival

javno:
void eat ()

cout << "Cow - eat veg!" a_ptr = nova krava ();
a_ptr-> eat ();
vrnitev 0;

Zaključek

V tem članku sem razložil koncept navidezne funkcije v jeziku C++. C ++ podpira različne vrste polimorfizma - statični polimorfizem in dinamični polimorfizem. S pomočjo navidezne funkcije lahko dosežemo polimorfizem med izvajanjem in dinamiko. V tem članku smo obravnavali samo koncept navidezne funkcije in kako doseči polimorfizem med izvajanjem. Za razlago navidezne funkcije sem razložil tri delovne primere.

Microsoft Sculpt Touch Wireless Mouse Review
Pred kratkim sem prebral o Microsoftov kiparski dotik brezžično miško in se odločil za nakup. Potem ko sem ga nekaj časa uporabljal, sem se odločil, d...
Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...