? Fordi C + + bruger et objekt -orienteret programmering , eller OOP model , som en del af dens design, skal programmører blive fortrolig med visse OOP begreber som klasser og objekter . Når en programmør ønsker at udvikle et objekt til brug i kode , skal hun designe objektet funktionalitet i en " klasse ". En klasse definerer de data og funktioner, som et objekt kan bruge. En bestemt type objekt funktion, den virtuelle destructor , for dens brug kræver, at en programmør forstå betydningen af destruktionsfunktioner i klasser , begrebet klassen arv, og brugen af virtuelle funktioner i C + + programmering. Arv
styrke PK ligger i begrebet arv. Når en programmør ønsker at udvide den funktionelt af et objekt, eller hvis ét objekt aktier meget af funktionelt af et andet objekt med kun mindre forskelle kan programmøren udlede en klasse fra hinanden . Når en klasse stammer fra en anden klasse ( "base "-klassen ), har det adgang til de variable og funktioner defineret i første klasse. I dette eksempel stammer class " bolden" fra klasse " sfære ", og udvider sin funktionalitet
class Sphere {
public: .
Int getRadius () {
afkast r ,
}
int r ,
}
klasse Ball : public Sphere {
public: < br >
string farve
}
virtuelle funktioner
Da en afledt klasse har adgang til alle de funktioner i basisklassen , den kan bruge dem som helst , som hvis den handlede som base klassen. Dog kan den afledte klasse i stedet redigere en funktion i basisklassen passer sine behov . Desuden kan en base klasse tjene som en skabelon for afledte klasse . I dette tilfælde vil den basisklassen navngive funktioner uden at definere, hvad de gør , i stedet efterlader det til afledte klasser . En funktion i en base klasse , der gør noget , i stedet efterlader en afledt klasse til at gennemføre den , kaldes en "virtuel" -funktionen.
Destruktorer
Integral at gøre indsigelse design er at gennemføre " konstruktør " og " destructor " funktioner . En konstruktør funktion for en klasse definerer, hvordan et objekt, der oprettes fra klassen vil først initialisere sig selv ( hvilket standarddataværdierne det vil indeholde , for eksempel) . Den destructor , derimod, bestemmer, hvad der sker, når et objekt bliver slettet fra hukommelsen (hvordan oplysningerne i den er slettet , for eksempel) . Dette eksempel kode viser, hvordan en klasse først definerer entreprenøren og destructor funktioner
class Sphere {
Sphere (); . //Constructor
~ Sphere () //destructor
}
virtuelle destruktorer
grund af, hvordan klasser og destruktionsfunktioner arbejde, når en afledt klasse er slettet fra hukommelsen , både destructor af det afledte klasse og destructoren af basen klasse skal hedde . For at opnå dette , programmører skabe virtuelle destruktionsfunktioner i stamklasser , at afledte klasser kan definere . Dette eksempel viser en base klasse med en virtuel destructor og en afledt klasse med sin egen destructor
class Sphere {
Sphere (); .
Virtual ~ Sphere () { } //den "virtuelle " søgeord betegner en virtuel klasse
}
klasse Ball : public Sphere {
Ball ();
~ Ball (): //sletning af en " kugle " objekt vil kalde denne destructor og Sphere destructoren