Uvod v virtualno ključno besedo v jeziku C ++

Navidezna ključna beseda v C ++ se uporablja za ustvarjanje navidezne funkcije v C ++. Navidezna funkcija je funkcija nadrejenega razreda, ki jo želimo na novo določiti v otroškem razredu. Navidezna funkcija se razglasi s ključno besedo virtualna. Ko definiramo virtualno funkcijo, bo ključna beseda virtualna nadaljevala v deklaraciji funkcije. Navidezna ključna beseda sporoči prevajalcu, da izvede pozno vezavo ali dinamično povezavo funkcije.

Enotni kazalec je potreben za navajanje vseh predmetov različnih razredov. Zato je kazalec ustvarjen na nadklasi, da se nanaša na vse predmete izpeljanega razreda in nato kazalec nadklasa vsebuje naslov predmeta izpeljanega razreda, ki vedno izvaja funkcijo nadklasa. Torej za rešitev tega uporabimo virtualno funkcijo. Torej, ko je virtualna funkcija ustvarjena v nadrazredu, potem prevajalnik C ++ identificira, katero funkcijo je treba izvesti med izvajanjem in identifikacija funkcije prevzame glede na vrsto predmeta, ki ga kaže kazalec superklasa.

Navidezna funkcija

Spodaj so navidezne funkcije skladnje:

Sintaksa

class name_class
(
public :
virtual return fun(arg1, arg2, ..)
(
//code inside the function
)
)

Kot v sintaksi, tudi fun () izjavi z virtualno ključno besedo, kar pomeni, da lahko razred otrok na novo opredeli iste metode.

1. program:

#include
using namespace std;
class A
(
public:
void disp()
(
cout << " Message from the class A\n ";
)
);
class B :public A
(
public:
void disp()
(
cout << "Message from the class B\n";
)
);
int main()
(
A* obj1; // super class pointer
B obj2; // child class object
obj1 = &obj2;
obj1-> disp(); // Late Binding Occurs
)

Izhod:

V zgornjem programu superrazred A, ki ima funkcijo disp (), ki je prepisana v izpeljani razred B. V glavni funkciji metoda disp () prikliče objekt obj1 (ki je dinamična vezava ali pozna vezava. Dinamična vezava je postopek, v katerem se določi, katera posebna funkcija za izvedbo se določi v času izvajanja) in funkcija disp () razreda A se izvaja.

2. program:

#include
using namespace std;
class A
(
public:
virtual void disp()
(
cout << " Message from the class A \n ";
)
);
class B :public A
(
public:
void disp()
(
cout << "Message from the class B\n";
)
);
int main()
(
A* obj1; // super class pointer
B obj2; // child class object
obj1 = &obj2;
obj1-> disp(); // Dynamic Binding Ocuurs
)

Izhod:

Zgornja programska koda je sprememba programa 1, funkcija disp () je definirana s ključno besedo virtualna in zdaj, ko se obj1, ki kliče funkcijo disp (), izvede funkcija disp () otroškega razreda B.

3. program:

#include
using namespace std;
class A
(
public:
virtual void disp()
(
cout << " Message from the class A\n ";
)
);
class B :public A
(
public:
virtual void disp()
(
cout << "Message from the class B\n";
)
);
int main()
(
A* obj1; // super class pointer
B obj2; // child class object
obj1 = &obj2;
obj1-> disp(); // Dynamic Binding Ocuurs
)

Izhod:

Zgornja programska koda je sprememba programa 2, funkcije disp (), ki je prav tako na novo definirana s ključno besedo virtualna v razredu B in zdaj, ko obj1 kliče funkcijo disp (), funkcijo disp () otroškega razreda B se izvaja.

Nato pišemo program za čisto virtualno funkcijo. Čista navidezna funkcija je funkcija, za katero don ni imel izvedb. Čista virtualna funkcija se imenuje tudi abstraktna virtualna funkcija. Čista deklaracija navidezne funkcije dodeli 0, kot je prikazano v spodnji kodi -

Program 4:

#include
using namespace std;
class A
(
public:
virtual void disp()=0;
);
class B :public A
(
public:
void disp()
(
cout << "Message from the class B\n";
)
);
int main()
(
A* obj1; // super class pointer
B obj2; // child class object
obj1 = &obj2;
obj1-> disp(); // Dynamic Binding Ocuurs
)

Izhod:

Prednosti virtualne ključne besede v C ++

  • Navidezne funkcije se uporabljajo za doseganje polimorfizma izvajanja.
  • Če razred izhaja iz razreda, ki ima virtualno funkcijo, potem lahko definicijo funkcije na novo določimo v izpeljanem razredu.

Pravila navidezne ključne besede v C ++

  • Virtualna ključna beseda v jeziku C ++ se uporablja v deklaraciji funkcij.
  • Virtualne funkcije morajo biti člani razreda.
  • Navidezna funkcija, ki je dostopna prek kazalcev predmetov
  • Navidezne funkcije ni mogoče razglasiti kot statično.
  • Navidezna funkcija je lahko prijateljica iz drugega razreda.
  • Če navidezna funkcija ni uporabljena v razredu, jo lahko določimo tudi v nadrazredu.
  • Podpis navidezne funkcije nadrazreda in nadrejenih razredov mora biti enak, tako imenovani kot preglasitev funkcije, sicer če se obe funkciji z istim imenom, vendar različnim podpisom, v C ++ štejeta za preobremenjene funkcije.
  • Lahko imamo navideznega destruktorja, ne pa navideznega konstruktorja.

Zaključek

  • Navidezna ključna beseda v C ++ se uporablja za ustvarjanje navidezne funkcije v C ++.
  • Navidezna funkcija je funkcija nadrejenega razreda, ki jo želimo na novo določiti v otroškem razredu.
  • Enotni kazalec je potreben za navajanje vseh predmetov različnih razredov.
  • Kazalnik nadvrstnega razreda vsebuje naslov predmeta izpeljanega razreda, ki vedno izvaja funkcijo superklasa.
  • Virtualne funkcije morajo biti člani razreda, morajo biti člani razreda, ne smejo biti razglašeni za statične, do katerih lahko dostopate prek kazalcev predmetov.
  • Podpis navidezne funkcije nadrazreda in nadrejenih razredov mora biti enak, tako imenovani kot preglasitev funkcije, sicer če se obe funkciji z istim imenom, vendar različnim podpisom, v C ++ štejeta za preobremenjene funkcije.

Priporočeni članki

To je vodnik po navidezni ključni besedi v jeziku C ++. Tukaj razpravljamo o uvodu in prednostih navidezne ključne besede v jeziku C ++ ter njegovi sintaksi virtualne funkcije. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Prevladovanje metode v C #
  2. Dedovanje v C #
  3. C # ukazi
  4. Java ukazi
  5. Prevladovanje v Javi
  6. Polimorfizem na Javi
  7. 11 najboljših lastnosti in prednosti C ++