Hvordan emulere supernøkkelordet i C++

Hvordan Emulere Supernokkelordet I C



Noen objektbaserte programmeringsspråk har nøkkelordet 'super', som gjør det mulig for en underklasse å påkalle funksjoner og medlemmer av basis- eller overordnet klasse. Noen programmeringsspråk bestemmer hvordan «super»-nøkkelordet skal brukes spesifikt. Men når det gjelder C++, brukes ikke supernøkkelordet på samme måte som i Java og Python. I denne opplæringen vil vi studere og demonstrere emuleringen av supernøkkelord i C++.

Hvordan emulere supersøkeordet i C++

Nøkkelordet kjent som 'super' er ikke forhåndsdefinert i C++-kompilatoren. Arv og funksjonsoverstyring brukes til å utvikle en underklasse som tar superklassens medlemmer og metoder. Bare oppgi identifikatoren til 'superklassen' og medlemmet eller metoden du ønsker å få tilgang til med operatøren (::).







Syntaks

Du kan få tilgang til en metode i en superklasse kalt 'parent_class' som har et navn som 'parent_function()' i en underklasse ved å bruke syntaksen vist nedenfor:



parent_class::parent_function ( ) ;



Eksempel

Bruk C++ for å emulere supernøkkelordfunksjonaliteten for å få tilgang til egenskapene til en overordnet klasse, bruk scope resolution operator(::).





Omfangsoppløsningsoperatøren (::) kan brukes til å skaffe medlemmene av en overordnet klasse når en klasse arver fra den. Tenk på følgende kode som et eksempel:

#include
bruker navneområde std;

klasse base_Class {
offentlig:
void baseFunction ( ) {
cout << 'Dette er ut av baseFunction fra baseklassen' << endl;
}
} ;
klasse derived_Class: offentlig base_Class {
offentlig:
ugyldig dFunksjon ( ) {
base_Class::baseFunction ( ) ;
cout << 'Dette er avledet klasse som får tilgang til baseFunction fra baseklassen' << endl;
}
} ;
int main ( ) {
avledet_Klasse d;
d.dFunction ( ) ;
komme tilbake 0 ;
}


Programmet ovenfor har en funksjon fra base- eller overordnet-klassen baseFunction(). En annen avledet klasse er definert som har tilgang til baseFunction() i dFunction(). Hovedmetoden er først å lage en forekomst av den derived_class og kalle dFunction() som skriver ut utdataene til både baseFunction() og dFunction().



Konklusjon

Selv om 'super' nøkkelordet ikke eksisterer direkte i C++, kan dets oppførsel etterlignes ved å kombinere arv og funksjonsoverstyringer. Vi kan med hell kalle og bruke metoder eller medlemmer av superklassen ved å kalle funksjonene til superklassen først før vi går videre til implementeringen av underklassen. Dette innlegget ga også en forekomst av C++-kode for bedre forståelse.