Definisjon av data Abstraction i C ++

Dataforskere opprettet C ++, et system programmeringsspråk, som en forlengelse av den opprinnelige C-språk utviklet på 1970-tallet. Mens C ++ omfatter all funksjonalitet ot C, legges det til 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 fungerer, og viktigheten av å beskytte sensitive data fra manipulasjon.

data~~POS=TRUNC typer~~POS=HEADCOMP

I C ++, som i mange andre språk, programmerere håndtere variabler som inneholder visse typer data. Disse typer data kan variere fra ulike former for desimaltall og ikke-desimaltall, til tegn og setninger. I C ++, må programmerer 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, ved hjelp av "int" søkeord. Men fordi C ++ fungerer i et objektorientert måte, kan programmerere lage sine egne datatyper. Programmerer-laget datatyper er kalt "objekter", og kan representere alt fra lister til figurer til nettverkstilkoblinger.

klasser

For å skape et objekt, må en programmerer først definere hvordan det fungerer datatype. Hun gjør dette ved å definere en "klasse". Klassen forteller datamaskinen hva slags data objektet skal inneholde. For eksempel definerer følgende kode en "Circle" objekt, som vil inneholde informasjon om sin radius (r):

klasse Circle {
offentlig:
int r = 0; // Heltall "r" representerer radius
};

Nå, når en bruker ønsker å benytte et objekt for å representere en sirkel, kan hun erklære en hensikt med den "Circle" datatype, thusly:

Circle c; // "Circle" er datatypen

Arv

Programmereren kan også definere Circle klassen til å beregne radius, ved å legge til et medlem funksjon. Dette medlem funksjon 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:

klasse Circle {

int r = 0;

flyte getArea () {
returnere r r 3,14;
}
};

Circle c = ny sirkel ();
cr = 1;
cout << c.getArea (); // Utskrifter "3,14" til skjermen

Abstraction data

The Circle klassen representerer en abstrakt datatype (ADT), som igjen representerer en reell objekt i den virkelige verden - for eksempel en sirkel eller ball. Men ikke brukeren trenger å vite hvordan denne klassen fungerer for å bruke det; 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 lar programmerere å bruke gjenstander uten å vite deres indre struktur, som gjør det lettere for dem å bygge mer komplisert kode fra allerede eksisterende klasser.