Objektorientert programmering i C ++ - Del 9 Innledning Dette er en del 9 av min serie, Objektorientert programmering i C ++. I programmering, kan du utforme et program og deretter en dag i fremtiden en annen person vil legge noe til programmet. Fokuset her er å designe en klasse, der det er en eller flere metoder uten definisjon. En dag i fremtiden noen vil arve en klasse danne den og sette en definisjon for metoden (eller metoder) av arvet klasse. En slik klasse som har en eller flere metoder uten definisjon er kalt en abstrakt basisklassen.
Å gi klassen metoden en definisjon, må du arver en klasse fra den og deretter i avledet klasse du gi definisjonen til funksjonen (metode). Du vil da instantiate og bruke objekter fra avledet klasse og ikke objekter fra base klassen (abstrakt base klasse). I denne artikkelen forklare I driften av den abstrakte basisklassen i C ++. Merk: Hvis du ikke kan se koden, eller hvis du tror noe mangler (ødelagt kobling, bilde fraværende), bare kontakte meg på [email protected]. Det er, kontakt meg for den minste problemet du har om hva du leser.
En Abstract Base Class En abstrakt base klassen er en klasse med det som er kjent som en ren virtuell funksjon. En ren virtuell funksjon er en funksjon (metode) som ikke har en implementering (det vil si, det har ikke en definisjon, med andre ord den ikke har en funksjon kropp i klammeparentes). Vel, du trenger å vite hvordan du skal bruke denne virtuelle funksjonen. Det å skrive har en erklæring som innledes med nøkkelord, virtuelle; erklæringen er tildelt verdien null. Følgende kode viser beskrivelsen av en abstrakt klasse som har en ren virtuell funksjon.
# include bruker namespace std; class MyClass {public: virtuell int mthd () = 0; }; int main () {return 0; } Klassen har bare én funksjon; det er den virtuelle funksjon. Oppmerksom på den måten er blitt skrevet. Det begynner med ordet, virtuelle; en null postadressen er blitt tildelt til erklæringen innenfor klassen beskrivelse. Enhver klasse med en ren virtuell funksjon kalles en abstrakt base klasse. I fremtiden kan du arve andre klasser fra denne klassen og i de arvet (avledet) klasser du vil gi den metoden gjennomføringen.
Implementering av en virtuell funksjon gjennom arv i følgende kode base klassen er en abstrakt base klasse. # include bruker namespace std; klasse Kalkulator {public: int num1; int num2; int legge til () {int sum = num1 + num2; returnere sum; } Virtuell int mthd () = 0; }; klasse ChildCalculator: pu