data abstraction c
bästa registerrensaren för Windows 7 64 bitar
Allt du behöver veta om abstraktion i C ++.
I den här C ++ - serien av självstudier lär vi oss alla de viktigaste begreppen för objektorienterad programmering i C ++ som är kända som de fyra pelarna i OOP.
- Abstraktion
- Inkapsling
- Arv
- Polymorfism
I den här handledningen kommer vi att utforska allt om dataabstraktion i C ++.
=> Klicka här för den absoluta C ++ träningsserien.
Vad du kommer att lära dig:
- Vad är abstraktion?
- Implementering av abstraktion i C ++
- Fördelar med abstraktion
- Slutsats
- Rekommenderad läsning
Vad är abstraktion?
Abstraktion är en teknik för objektorienterad programmering med vilken vi döljer detaljerna för implementering för användaren och bara exponerar ett gränssnitt som krävs.
Vi kan ta ett verkligt exempel på en luftkonditionering (AC). Vi har en fjärrkontroll för att styra de olika växelströmsfunktionerna som att starta, stoppa, höja / sänka temperaturen, kontrollera luftfuktigheten etc. Vi kan styra dessa funktioner bara med en klocka på en knapp men internt finns det en komplex logik som är implementeras för att utföra dessa funktioner.
Men som slutanvändare är det vi exponerade för endast fjärrgränssnittet och inte implementeringsdetaljerna för alla dessa funktioner.
Abstraktion är en av de fyra pelarna i objektorienterad programmering och nästan alla OOP-lösningar baseras på abstraktionsprinciperna, dvs. separering av gränssnitt och implementeringsdetaljer i programmet.
I ovanstående diagram har vi visat ett objekt och dess innehåll som en bildföreställning. Vi kan se att det innersta lagret av detta objekt är dess kärnfunktionalitet följt av implementeringsdetaljer.
I OOP exponeras inte dessa två lager (men i de flesta fall bara ett lager) för omvärlden. Det yttersta lagret, gränssnittet, är det lager som tillhandahålls för slutanvändaren för att få åtkomst till objektets funktionalitet.
Som ett resultat är alla ändringar som gjorts i objektets innersta lager inte uppenbara för slutanvändaren så länge gränssnittet som användaren exponeras för förblir detsamma.
Implementering av abstraktion i C ++
C ++ stöder abstraktion på ett stort djup. I C ++ kan även de biblioteksfunktioner som vi använder betraktas som ett exempel på abstraktion.
Vi kan representera implementeringen av abstraktion i C ++ enligt följande:
Som visas i figuren ovan kan vi implementera abstraktion i C ++ på två sätt:
# 1) Använda klasser och åtkomstspecifikatorer
En klass implementerad i C ++ med åtkomstspecifikatorer offentlig, privat och skyddad kan betraktas som en implementering av abstraktion.
Som vi redan vet tillåter användningen av åtkomstspecifikatorer oss att kontrollera åtkomsten till klassmedlemmarna. Vi kan göra vissa medlemmar privata så att de är oåtkomliga utanför klassen. Vi kan ha vissa medlemmar som skyddade så att de endast är tillgängliga för de härledda klasserna. Slutligen kan vi göra vissa medlemmar offentliga så att dessa medlemmar är tillgängliga utanför klassen.
Med hjälp av detta begrepp kan vi implementera abstraktion på ett sådant sätt att implementeringsdetaljerna döljs från omvärlden genom att använda privat åtkomstspecifikator medan gränssnittet kan exponeras för omvärlden med hjälp av den offentliga specifikationen.
Därför kan vi implementera abstraktion i C ++, med hjälp av en klass för att samla data och funktioner i en enda enhet och använda åtkomstspecifikatorer för att kontrollera åtkomst till dessa data och funktioner.
Låt oss implementera följande exempel för att demonstrera detta.
#include #include using namespace std; class sample { int num1,num2; void readNum(){ cout<>num1; cout<>num2; } public: void displaySum() { readNum(); cout<<'
Sum of the two numbers = '< Produktion:
gratis säkerhetskopieringsprogramvara för Windows 8.1
Ange nummer1: 10
Ange num2: 20
Summan av de två siffrorna = 30
I programmet ovan har vi en provklass som har två heltalsvariabler, num1 och num2. Den har också två funktioner readNum och displaySum. Datamedlemmarnas num1 och num2, liksom funktionen readNum, är privata för klassen.
Funktion displaySum är offentlig för klassen. I huvudfunktionen skapar vi ett objekt med klassprov och anrop displaySum som läser de två numren samt skriver ut deras summa.
Detta är abstraktionens implementering. Vi exponerar bara en funktion för allmänheten samtidigt som de andra datamedlemmarna och funktionerna hålls under omslaget. Även om detta bara är ett exempel för att demonstrera abstraktion, medan vi implementerar verkliga problem, kan vi ha många nivåer av abstraktion i C ++.
# 2) Användning av Header File Implementation
Vi använder huvudfiler i C ++ - programmet för att importera och använda fördefinierade funktioner. För detta använder vi direktivet #include för att inkludera rubrikfiler i vårt program.
Till exempel, i ovanstående program har vi använt funktionerna cin och cout. När det gäller dessa funktioner vet vi bara hur man använder dem och vilka parametrar de tar.
Vi vet inte vad som händer i bakgrunden när dessa funktioner anropas eller hur de implementeras i iostream-huvudfilen. Detta är ett annat sätt för abstraktion som tillhandahålls av C ++.
Vi känner inte till detaljerna för implementeringen av alla funktioner som vi importerar från huvudfilerna.
Här är ett annat exempel för att demonstrera abstraktion.
#include #include using namespace std; class employee{ int empId; string name; double salary,basic,allowances; double calculateSalary(int empId){ salary = basic+allowances; return salary; } public: employee(int empId, string name,double basic,double allowances): empId(empId),name(name),basic(basic),allowances(allowances){ calculateSalary(empId); } void display(){ cout<<'EmpId = '< Produktion:
EmpId = 1 Namn = Ved
Lön till anställda = 18245.4

I det här exemplet har vi definierat en klassanställd som har privata detaljer som empId, namn, löneinformation som grundläggande och ersättningar. Vi definierar också en privat funktion 'beräkna Salar' som beräknar lönen med hjälp av grundläggande och ersättningar.
Vi har en konstruktör för att initialisera all data för ett visst anställdobjekt. Vi kallar också funktionen 'beräkna Salar' från konstruktören för att beräkna lönen för den nuvarande medarbetaren.
Därefter har vi en “display” -funktion som visar empId, namn och lön. I huvudfunktionen skapar vi ett objekt för klassanställda och kallar displayfunktionen.
bästa mobilspionapp för iPhone
Vi ser tydligt graden av abstraktion som vi har gett i detta program. Vi har dolt alla medarbetardetaljer samt beräknar lönefunktionen för användaren genom att göra dem privata.
Vi har bara exponerat en funktionsdisplay för användaren som ger all information om anställdsobjekt till användaren och samtidigt döljer den också uppgifter som privata data och hur vi beräknar lönen till den anställde.
Genom att göra detta, i framtiden, om vi vill lägga till mer information och ändra hur lönen beräknas, behöver vi inte ändra visningsfunktionen. Användaren känner inte till dessa ändringar.
Fördelar med abstraktion
Nedan listas några av fördelarna med abstraktion.
- Programmeraren behöver inte skriva lågnivåkod.
- Abstraktion skyddar den interna implementeringen från skadlig användning och fel.
- Abstraktion kan förhindra duplicering av kod och därför måste programmeraren utföra samma uppgifter om och om igen.
- Abstraktion främjar återanvändning av kod och klassificerar ordningsmedlemmarna ordentligt.
- Programmeraren kan ändra de interna detaljerna i klassimplementeringen utan kunskap från slutanvändaren och därigenom utan att påverka de yttre lagren.
Slutsats
Abstraktion är ett av de viktigaste begreppen i OOP och implementeras på ett stort djup i C ++. Med hjälp av abstraktion kan vi hålla informationen om genomförandet av programmet under omslag och bara avslöja de detaljer som vi vill ha för omvärlden.
Genom att använda abstraktionskonceptet kan vi designa abstrakta datatyper och klasser som fungerar som ett skelett till programmeringslösningen på vilken en hel lösning byggs. När vi går igenom OOP-ämnena kommer vi att lära oss mer om dessa typer och klasser.
I våra kommande handledning kommer vi att lära oss om en annan pelare i OOP, dvs. inkapsling. Vi kommer också att väga samman abstraktion och inkapsling där.
=> Leta efter hela C ++ träningsserien här.
Rekommenderad läsning
- C ++ datatyper
- Inkapsling i C ++
- Topp 10 Data Science-verktyg 2021 för att eliminera programmering
- Objektorienterad programmering i C ++
- Introduktion till datastrukturer i C ++
- 70+ BEST C ++ självstudier för att lära dig C ++ programmering GRATIS
- JMeter-dataparameterisering med användardefinierade variabler
- 10+ bästa datainsamlingsverktyg med strategier för datainsamling