Kaip emuliuoti super raktinį žodį C++

Kaip Emuliuoti Super Raktini Zodi C



Kai kurios objektinio programavimo kalbos turi „super“ raktinį žodį, kuris įgalina poklasį iškviesti bazinės arba pirminės klasės funkcijas ir narius. Kai kurios programavimo kalbos nustato, kaip konkrečiai turėtų būti naudojamas „super“ raktinis žodis. Tačiau C++ atveju super raktinis žodis nenaudojamas taip, kaip Java ir Python. Šioje pamokoje mes išnagrinėsime ir parodysime super raktinių žodžių emuliaciją C++.

Kaip emuliuoti super raktinį žodį C++

Raktinis žodis, žinomas kaip „super“, nėra iš anksto nustatytas C++ kompiliatoriuje. Paveldėjimas ir funkcijos nepaisymas yra naudojami kuriant poklasį, kuris perima savo superklasės narius ir metodus. Tiesiog nurodykite „superklasės“ identifikatorių ir narį arba metodą, kurį norite pasiekti su operatoriumi (::).







Sintaksė

Galite pasiekti metodą, esantį superklasėje, pavadintoje „parent_class“, kurios poklasyje yra toks pavadinimas kaip „parent_function()“, naudodami toliau pateiktą sintaksę:



tėvų_klasė::parent_function ( ) ;



Pavyzdys

Naudodami C++, norėdami emuliuoti super raktinio žodžio funkciją, kad pasiektumėte pirminės klasės ypatybes, naudokite srities skyros operatorių (::).





Apimties nustatymo operatorius (::) gali būti naudojamas pirminės klasės nariams gauti, kai klasė paveldi iš jos. Apsvarstykite šį kodą kaip pavyzdį:

#include
naudojant vardų erdvę std;

klasė bazinė_klasė {
viešas:
tuščia bazėFunkcija ( ) {
cout << 'Tai yra iš bazinės klasės 'baseFunction' << endl;
}
} ;
klasė derieved_Class: viešoji bazė_klasė {
viešas:
tuščia dFunkcija ( ) {
base_Class::baseFunction ( ) ;
cout << 'Tai yra išvestinė klasė, kuri pasiekia baseFunction iš bazinės klasės' << endl;
}
} ;
tarp pagrindinis ( ) {
derieved_d klasė;
d.dFunkcija ( ) ;
grąžinti 0 ;
}


Aukščiau pateikta programa turi funkciją iš pagrindinės arba pirminės klasės baseFunction(). Apibrėžiama kita išvestinė klasė, kuri pasiekia baseFunction() dFunction(). Pagrindinis metodas yra pirmiausia sukurti išvestinės_klasės egzempliorių ir iškviesti dFunction(), kuri spausdina ir baseFunction() ir dFunction() išvestį.



Išvada

Nors raktinis žodis „super“ tiesiogiai neegzistuoja C++, jo elgesį galima imituoti derinant paveldimumo ir funkcijų nepaisymą. Mes galime sėkmingai iškviesti ir naudoti superklasės metodus arba narius, pirmiausia iškviesdami superklasės funkcijas, prieš pereidami prie poklasio įgyvendinimo. Šiame įraše taip pat buvo pateiktas C++ kodo pavyzdys, kad galėtumėte geriau suprasti.