objektorienteret programmering i C ++ - Del 9 Introduktion Dette er en del 9 af min serie, objektorienteret programmering i C ++. I programmering, kan du designe et program og derefter nogle dag i fremtiden en anden person vil tilføje noget til programmet. Fokus her er at designe en klasse, hvor der er en eller flere metoder uden definition. En dag i fremtiden nogen vil arve en klasse danner det og sætte en definition for metoden (eller metoder) af det nedarvede klasse. En sådan klasse, der har en eller flere metoder uden definition kaldes en abstrakt base klasse.
For at give klassen metoden en definition, er du nødt til at arve en klasse fra det, og derefter i den afledte klasse du giver definitionen til funktionen (metode). Du vil derefter instantiate og bruge objekter fra den afledte klasse og ikke objekter fra basen klasse (abstract base klasse). I denne artikel vil jeg forklare driften af den abstrakte base klasse i C ++. Bemærk: Hvis du ikke kan se koden, eller hvis du tror noget mangler (brudt link, billede fraværende), bare kontakte mig på [email protected]. Det vil sige, kontakt mig for det mindste problem, du har om, hvad du læser.
En abstrakt Base Class En abstrakt base klasse er en klasse med, hvad der er kendt som en ren virtuel funktion. En ren virtuel funktion er en funktion (metode), der ikke har en implementering (dvs. det har ikke en definition, med andre ord det ikke har en funktion i kroppen krøllede parenteser). Nå, du har brug for at vide, hvordan at bruge denne virtuelle funktion. Den maskinskrivning har en erklæring om, at der indledes med søgeord, virtuelle; til erklæringen er tildelt værdien nul. Følgende kode illustrerer beskrivelsen af en abstrakt klasse, der har en ren virtuel funktion.
# include hjælp namespace std; klasse MinKlasse {public: virtual int mthd () = 0; }; int main () {return 0; } Klassen har kun én funktion; det er den virtuelle funktion. Bemærk den måde er blevet indtastet. Det begynder med ordet, virtuelle; en null-adresse er blevet tildelt til erklæringen inden for klassen beskrivelsen. Enhver klasse med en ren virtuel funktion kaldes en abstrakt base klasse. Fremover kan du arve andre klasser fra denne klasse og i de nedarvede (afledte) klasser, du ville give metoden dens gennemførelse.
Implementering af en virtuel funktion gennem Arv i følgende kode basen klassen er en abstrakt base klasse. # include hjælp namespace std; klasse Lommeregner {public: int num1; int num2; int tilføje () {int sum =