Kuidas emuleerida supermärksõna C++-s

Kuidas Emuleerida Supermarksona C S



Mõnel objektipõhisel programmeerimiskeelel on märksõna 'super', mis võimaldab alamklassil kutsuda esile põhi- või vanemklassi funktsioone ja liikmeid. Mõned programmeerimiskeeled määravad kindlaks, kuidas märksõna 'super' konkreetselt kasutada. Kuid C++ puhul ei kasutata supermärksõna samamoodi nagu Javas ja Pythonis. Selles õpetuses uurime ja demonstreerime supermärksõnade emuleerimist C++ keeles.

Kuidas emuleerida supermärksõna C++ keeles

Märksõna, mida tuntakse kui 'super', pole C++ kompilaatoris eelmääratletud. Pärandi ja funktsiooni alistamist kasutatakse alamklassi väljatöötamiseks, mis võtab oma ülemklassi liikmed ja meetodid. Sisestage lihtsalt operaatoriga (::) superklassi identifikaator ja liige või meetod, millele soovite juurde pääseda.







Süntaks

Pääsete ligi meetodile superklassis nimega 'parent_class', mille nimi on alamklassis nagu 'parent_function()', kasutades allpool näidatud süntaksit:



vanemate_klass::vanema_funktsioon ( ) ;



Näide

Kasutades C++ supermärksõna funktsiooni emuleerimiseks, et pääseda juurde põhiklassi omadustele, kasutage ulatuse eraldusvõime operaatorit (::).





Ulatuse lahutusoperaatorit (::) saab kasutada emaklassi liikmete hankimiseks alati, kui klass sellest pärib. Vaatleme näitena järgmist koodi:

#include
kasutades nimeruumi std;

klass alus_klass {
avalik:
tühi baasfunktsioon ( ) {
cout << 'See on põhiklassist välja baseFunction' << endl;
}
} ;
klass derieved_Class: avalik baasklass {
avalik:
tühine dFunktsioon ( ) {
base_Class::baseFunction ( ) ;
cout << 'See on tuletatud klass, mis pääseb baseFunctionile baasklassist' << endl;
}
} ;
int main ( ) {
derieved_Class d;
d.dFunktsioon ( ) ;
tagasi 0 ;
}


Ülaltoodud programmil on funktsioon baas- või ülemklassist baseFunction(). Määratletakse veel üks tuletatud klass, mis pääseb dFunction() funktsioonile baseFunction(). Peamine meetod on esmalt tuletatud_klassi eksemplari loomine ja dFunction() kutsumine, mis prindib nii funktsiooni baseFunction() kui ka dFunction() väljundi.



Järeldus

Kuigi märksõna 'super' C++-s otseselt ei eksisteeri, saab selle käitumist jäljendada pärimise ja funktsiooni alistamise kombineerimisega. Me saame edukalt kutsuda ja kasutada ülemklassi meetodeid või liikmeid, kutsudes esmalt välja ülemklassi funktsioonid, enne kui liigume edasi alamklassi juurutamise juurde. See postitus pakkus teie paremaks mõistmiseks ka C++ koodi eksemplari.