Computer skabte forskerne C + +, et system programmeringssprog, som en udvidelse af den oprindelige C-sprog udviklet i 1970'erne . Mens C + + indeholder alle funktionerne ot C , det tilføjer objektorienterede kapaciteter til sin syntaks og biblioteker. På grund af dette , kan C + + programmører drage fordel af objektorienterede paradigmer , herunder data abstraktion . For at forstå, hvad data abstraktion er, må programmøren forstå, hvordan C + + klasser og objekter arbejde, og vigtigheden af at beskytte følsomme data fra manipulation. Datatyper
C + +, som i mange andre sprog , deal programmører med variabler , der indeholder visse typer af data . Disse datatyper kan variere fra forskellige former for decimal og ikke- decimaltal , at tegn og sætninger . I C + +, skal programmøren specificere , hvilken type data en variabel vil holde. For eksempel skal en variabel " x " , der vil holde et heltal angives som et heltal variabel ved hjælp af " int " søgeord . Men fordi C + + værker i et objekt -orienteret måde , kan programmører at skabe deres egne datatyper . Programmør - skabte datatyper kaldes "objekter ", og kan repræsentere alt fra lister til figurer til netværksforbindelser.
Klasser
For at skabe et objekt skal en programmør først definere , hvordan den pågældende datatype virker. Hun gør dette ved at definere en "klasse" . Klassen fortæller computeren , hvad slags data objektet vil indeholde . For eksempel definerer følgende kode en "Circle " objekt , som vil indeholde oplysninger om dens radius ( r ) : Hej
class Cirkel { public: int r = 0 //heltal "r " repræsenterer radius };
nu, når en bruger ønsker at bruge et objekt til at repræsentere en cirkel , kan hun erklære et objekt af " cirkel" datatype, thusly : Hej
Circle c ; //"Circle " er den datatype
Inheritance
programmøren kan også definere Circle klassen til at beregne radius , ved at tilføje et medlem funktion. Dette medlem funktion kan udføre nogle opgaver på grundlag af data inden for et objekt , og returnere et resultat . Følgende eksempel udvider Circle klassen ved at tilføje en funktion " getAreal ()" , der returnerer et decimal tilnærmelse af arealet af den cirkel : Hej
class Cirkel {
int r = 0;
float getAreal () {return r * r * 3,14 ;} };
Circle c = new Circle (); cr = 1, cout << c.getArea (); //udskriver " 3.14" til skærmen
Information Abstraction
Circle klasse repræsenterer en abstrakt datatype ( ADT ) , som igen udgør en reel objekt i den virkelige verden - såsom en cirkel eller kugle . Men brugeren ikke behøver at vide, hvordan denne klasse fungerer med henblik på at bruge det , kun at det gør noget. Den " getAreal ()" funktionen er et godt eksempel på dette: en bruger af klassen kan bruge getAreal () funktionen uden at skulle lære dets funktion , kun, hvad input er påkrævet , og hvad der udgange til at forvente. Det er data, abstraktion , og det er vigtigt , fordi det giver programmører til at bruge objekter uden at kende deres interne struktur , hvilket gør det lettere for dem at opbygge mere kompliceret kode fra allerede eksisterende klasser.