Computer forskere skapt C + +, et system programmeringsspråk , som en forlengelse av den opprinnelige C-språk utviklet i 1970 . Mens C + + inneholder all funksjonalitet ot C , legger det objektorienterte evner til sin syntaks og biblioteker. På grunn av dette , kan C + + programmerere dra nytte av objektorienterte paradigmer , inkludert data abstraksjon . For å forstå hva data abstraksjon er , må programmereren forstå hvordan C + + klasser og objekter arbeid, og viktigheten av å beskytte sensitive data fra manipulasjon. Datatyper
I C + + , som i mange andre språk , programmerere avtale med variabler som inneholder visse typer data . Disse typer data kan variere fra ulike former for desimal og ikke- desimal tall, til tegn og setninger . I C + + , må programmereren spesifisere hva slags data en variabel vil holde. For eksempel må en variabel " x " som vil holde et heltall bli erklært som et heltall variabel , med " int " søkeord . Men fordi C + + fungerer i et objektorientert måte, kan programmerere lage sine egne datatyper . Programmerer - laget datatyper kalles "objekter ", og kan representere alt fra lister til figurer til nettverkstilkoblinger.
Klasser
For å skape et objekt , må en programmerer først definere hvordan det datatype fungerer . Hun gjør dette ved å definere en "klasse" . Klassen forteller datamaskinen hva slags data objektet vil inneholde . For eksempel definerer følgende kode en "Circle " objekt , som vil inneholde informasjon om sin radius ( r ) : en
klasse Circle {public : int r = 0; //heltall "r " representerer radius };
nå, når en bruker ønsker å bruke et objekt til å representere en sirkel , kan hun erklære et objekt av " Circle" datatype , thusly : en
Circle c ; //"Circle " er datatypen
Inheritance
programmereren kan også definere Circle klassen til å beregne avstanden , ved å legge til et medlem funksjon . Dette medlem funksjonen kan utføre en oppgave basert på data i et objekt , og returnere et resultat . Følgende eksempel utvider Circle klassen ved å legge til en funksjon " getArea ( )" som returnerer en desimal tilnærming av arealet av sirkelen : en
klasse Circle {
int r = 0 ;
float getArea ( ) {return r * r * 3,14 ;} };
Circle c = new Circle (); cr = 1; cout << c.getArea (); //skriver ut " 3.14 " til skjermen
data abstraksjon
Circle klassen representerer en abstrakt datatype ( ADT ) , som i sin tur representerer en reell objekt i den virkelige verden - for eksempel en sirkel eller ball . Men ikke brukeren trenger å vite hvordan denne klassen arbeider for å kunne bruke den, bare at det gjør noe . Den " getArea ( ) "-funksjonen er et godt eksempel på dette : en bruker av klassen kan bruke getArea ( )-funksjonen uten å måtte lære sitt arbeid , bare det innganger er nødvendig og hva utganger du kan forvente. Dette er data abstraksjon , og det er viktig fordi det tillater programmerere å bruke objekter uten å vite deres interne struktur , som gjør det lettere for dem å bygge mer komplisert kode fra allerede eksisterende klasser.