Object -georiënteerde programmeertalen zoals C + + ( " C Plus Plus " of CPP ) volgen een paradigma van de programmering gericht op hergebruik van code en het bouwen van structurele hiërarchieën in die code . Ontwikkelaars klassen om gegevens in functionaliteit kapselen in logische stukken . Zij doen dit ook omdat bepaalde technieken in OOP , zoals erfrecht , kan de bouw van meer complexe klassen uit eenvoudigere. Ontwikkelaars kunnen ook bepalen hoe de lessen worden uitgevoerd door het gebruik van design template klassen genaamd " interfaces " of " abstracte klassen ' die bepalen hoe andere programmeurs deze klassen . Objecten en Inheritance Bij het aanmaken van klassen en objecten voor een programma in C + + , de programmeur ontdekt vaak dat verschillende klassen vergelijkbare functionaliteit zal overlappen of delen . Ze heeft dan twee keuzes : schrijf de functionele code voor beide klassen , of maak een "basis " -klasse met alle gedeelde eigenschappen en kenmerken van deze klassen . Vervolgens , de twee klassen kan " inherent " die eigenschappen tijdens het toevoegen van hun eigen . Bijvoorbeeld , als de programmeur schrijft " Associate " en " Manager " klassen voor een bedrijf app , ze zou een " werknemer " klasse die de gemeenschappelijke functionaliteit en tussen medewerkers en managers bevat. < br > virtuele functies Basisklasse voor een andere klasse kan definities over wat lessen kunnen bevatten . en welke informatie ze bevatten . Dus, zou de klasse Werknemer van het voorbeeld een functie bevatten om loon dat een bepaalde formule bevat berekenen. De Manager en Associate klassen inherente die functie , en dus de formule . Echter , kunnen managers en medewerkers andere formule nodig heeft om salaris te berekenen . In dit geval zou de basisklasse functie " virtuele " bevatten . De basisklasse zou een standaard gedrag te definiëren , maar het kind klassen kunnen dan hun eigen formules en functies aan te maken indien nodig. Abstract Classes Naast virtuele functies er " pure" virtuele functies . Puur virtuele functies niet een functie-definitie bevatten . Integendeel, ze gewoon een functienaam te definiëren . Dus, bijvoorbeeld , de loonberekening functie in de base class Employee zou worden verklaard als virtuele zonder definitie . Dan zou de klassen Manager en Associate hun eigen functies definiëren om salaris te berekenen . Als een klasse bevat een of meer zuiver virtuele functies wordt een abstracte klasse genoemd. Dit komt omdat de klassen met puur virtuele functies niet objecten kunnen worden . C + + -interfaces Sinds abstracte klassen geen objecten kunnen worden , worden ze genoemd " interfaces . " Interfaces zijn abstracte klassen , met vaak slechts pure virtuele functies die dienen als een sjabloon voor andere algemene klassen . Dus als de werknemer bijvoorbeeld bevat alleen pure virtuele functies , dan is de programmeur ontwerpt de Manager en Associate klassen te erven van werknemer als een interface , wat betekent dat ze moeten het puur virtuele functies van de klasse Employee implementeren . Terwijl de ISO C + + standaard bevat geen specifieke " -interface " keyword , Microsoft 's implementatie van bevatten C + + doet ( bron 3 ) . Hier is een voorbeeld om dit te illustreren relationship.class Employee { openbare : virtual int calcSalary ( ) = 0 ; //puur virtuele functie private : int ID ;} ; class Associate : openbare Employee { openbare : int calcSalary ( ) { //Associate * moet * implementeren calcSalary of krijg een foutmelding /* code * /} } ;
|