Hoe het super-trefwoord in C ++ te emuleren

Hoe Het Super Trefwoord In C Te Emuleren



Sommige objectgebaseerde programmeertalen hebben het sleutelwoord 'super', waarmee een subklasse functies en leden van de basis- of bovenliggende klasse kan aanroepen. Sommige programmeertalen bepalen hoe het sleutelwoord 'super' specifiek moet worden gebruikt. Maar in het geval van C++ wordt het sleutelwoord super niet op dezelfde manier gebruikt als in Java en Python. In deze zelfstudie zullen we de emulatie van supertrefwoorden in C ++ bestuderen en demonstreren.

Hoe het super-trefwoord in C ++ te emuleren

Het sleutelwoord dat bekend staat als 'super' is niet vooraf gedefinieerd in de C++-compiler. De overerving en functie-override worden gebruikt om een ​​subklasse te ontwikkelen die de leden en methoden van de superklasse overneemt. Geef gewoon de identifier van de 'superklasse' en het lid of de methode waartoe u toegang wilt met de operator (::).







Syntaxis

U kunt toegang krijgen tot een methode in een superklasse met de naam 'parent_class' die een naam heeft als 'parent_function()' in een subklasse door de onderstaande syntaxis te gebruiken:



parent_class::parent_function ( ) ;



Voorbeeld

Gebruik C++ om de supersleutelwoordfunctionaliteit te emuleren om toegang te krijgen tot de eigenschappen van een bovenliggende klasse en gebruik de scope-resolutie-operator (::).





De scope-resolutie-operator (::) kan worden gebruikt om de leden van een bovenliggende klasse te verkrijgen telkens wanneer een klasse ervan erft. Beschouw de volgende code als voorbeeld:

#include
namespace std; gebruiken;

klasse basis_Klasse {
openbaar:
leegte baseFunctie ( ) {
cout << 'Dit is de outout van baseFunction van de basisklasse' << einde;
}
} ;
klasse afgeleide_Klasse: openbare basis_Klasse {
openbaar:
leegte dFunctie ( ) {
base_Class::baseFunction ( ) ;
cout << 'Dit is een afgeleide klasse die toegang heeft tot baseFunction vanuit de basisklasse' << einde;
}
} ;
int hoofd ( ) {
afgeleid_Klasse d;
d.dFunctie ( ) ;
opbrengst 0 ;
}


Het bovenstaande programma heeft een functie van de basis- of bovenliggende klasse baseFunction(). Er is een andere afgeleide klasse gedefinieerd die toegang heeft tot de baseFunction() in de dFunction(). De belangrijkste methode is eerst het maken van een instantie van de afgeleide_klasse en het aanroepen van dFunction() die de uitvoer afdrukt van zowel baseFunction() als dFunction().



Conclusie

Hoewel het sleutelwoord 'super' niet rechtstreeks in C++ bestaat, kan het gedrag ervan worden nagebootst door overerving en functie-overrides te combineren. We kunnen met succes methoden of leden van de superklasse aanroepen en gebruiken door eerst de functies van de superklasse aan te roepen voordat we verder gaan met de implementatie van de subklasse. Dit bericht bevatte ook een instantie van C++-code voor een beter begrip.