Sådan emulerer du supersøgeordet i C++

Sadan Emulerer Du Supersogeordet I C



Nogle objektbaserede programmeringssprog har nøgleordet 'super', som gør det muligt for en underklasse at påkalde funktioner og medlemmer af basis- eller overordnet klasse. Nogle programmeringssprog bestemmer, hvordan 'super' søgeordet skal bruges specifikt. Men i tilfælde af C++ bruges supernøgleordet ikke på samme måde som i Java og Python. I denne tutorial vil vi studere og demonstrere emuleringen af ​​supernøgleord i C++.

Sådan emulerer du supersøgeordet i C++

Nøgleordet kendt som 'super' er ikke foruddefineret i C++ compileren. Arven og funktionstilsidesættelsen bruges til at udvikle en underklasse, der tager sin superklasses medlemmer og metoder. Angiv blot identifikatoren for 'superklassen' og det medlem eller den metode, du ønsker at få adgang til med operatøren (::).







Syntaks

Du kan få adgang til en metode i en superklasse ved navn 'parent_class', der har et navn som 'parent_function()' i en underklasse ved at bruge syntaksen vist nedenfor:



parent_class::parent_function ( ) ;



Eksempel

Brug C++ til at emulere supernøgleordsfunktionaliteten for at få adgang til egenskaberne for en overordnet klasse, brug scope resolution operator(::).





Omfangsopløsningsoperatøren (::) kan bruges til at få medlemmerne af en overordnet klasse, når en klasse arver fra den. Overvej følgende kode som et eksempel:

#include
bruger navneområde std;

klasse base_Class {
offentlig:
void baseFunction ( ) {
cout << 'Dette er ude af baseFunction fra basisklassen' << endl;
}
} ;
klasse derived_Class: offentlig base_Class {
offentlig:
ugyldig dFunction ( ) {
base_Class::baseFunction ( ) ;
cout << 'Dette er afledt klasse, der får adgang til baseFunction fra basisklassen' << endl;
}
} ;
int main ( ) {
afledt_Klasse d;
d.dFunktion ( ) ;
Vend tilbage 0 ;
}


Ovenstående program har en funktion fra basis- eller overordnet klasse baseFunction(). En anden afledt klasse er defineret, som har adgang til baseFunction() i dFunction(). Hovedmetoden er først at skabe en instans af den derived_class og kalde dFunction(), som udskriver output fra både baseFunction() og dFunction().



Konklusion

Selvom 'super' søgeordet ikke findes direkte i C++, kan dets adfærd efterlignes ved at kombinere arv og funktionstilsidesættelser. Vi kan med succes kalde og bruge metoder eller medlemmer af superklassen ved at kalde superklassens funktioner først, før vi går videre til implementeringen af ​​underklassen. Dette indlæg gav også en forekomst af C++-kode for din bedre forståelse.