encapsulation c
En fullständig översikt över inkapsling i C ++:
Vi diskuterade abstraktion i detalj i vår tidigare handledning. Abstraktion, som vi vet, döljer implementeringsinformationen från användaren och exponerar endast det gränssnitt som krävs av användaren.
I den här handledningen kommer vi att diskutera ännu en viktig funktion i OOP, dvs. inkapsling. Abstraktion och inkapsling går hand i hand. I själva verket kan vi säga att den inkapslade koden hjälper oss i abstraktion. Med andra ord är inkapsling och abstraktion nära sammanbundna.
=> Besök här för en komplett C ++ - kurs från experter.
stackimplementering i c ++ med hjälp av array
Således kan vi diskutera dessa två begrepp tillsammans eftersom det finns en mycket tunn linje mellan inkapsling och abstraktion.
Vad du kommer att lära dig:
- Vad är inkapsling?
- Implementering av inkapsling
- Skillnaden mellan inkapsling och abstraktion
- Slutsats
- Rekommenderad läsning
Vad är inkapsling?
Datakapsling avser processen att binda samman data och funktioner eller metoder som fungerar på dessa data till en enda enhet så att den skyddas från yttre störningar och missbruk.
Detta är ett viktigt objektorienterat programmeringskoncept och det leder till ytterligare ett OOP-koncept som kallas ” Data gömmer sig ”. Inkapsling döljer data och dess medlemmar medan abstraktion bara exponerar nödvändiga detaljer eller gränssnitt för omvärlden.
På ett sätt presenterar abstraktion den ”abstrakta synen” av dolda data för omvärlden. Således gjorde vi redan ett uttalande om att inkapsling och abstraktion går hand i hand.
En klass i C ++ är den där vi buntar ihop datamedlemmar och funktionerna som fungerar på dessa datamedlemmar tillsammans med åtkomstspecifikatorer som privata, offentliga och skyddade representerar inkapsling. Vi har redan diskuterat åtkomstspecifikatorer i vår tidigare handledning om klasser och objekt.
Vi vet också att klassmedlemmar som standard är privata. När vi förklarar klassmedlemmar som privata och metoder för att få tillgång till klassmedlemmar som offentliga implementerar vi verkligen inkapsling. Samtidigt ger vi en abstrakt bild av data till omvärlden i form av offentliga metoder.
Implementering av inkapsling
Inkapsling i C ++ implementeras som en klass som buntar data och funktionerna som fungerar på dessa data tillsammans. Uppgifter deklareras mestadels som privata så att de inte är tillgängliga utanför klassen. Metoderna eller funktionerna deklareras som offentliga och kan nås med klassens objekt.
Vi kan dock inte direkt komma åt privata medlemmar och detta kallas datadöljande. När detta är gjort är data säkrat och kan endast nås med funktioner i den specifika klassen där data deklareras.
// Example program #include #include using namespace std; //example class to demonstrate encapsulation class sampleData{ int num; char ch; public: //getter methods to read data values int getInt() const{ return num; } char getCh() const{ return ch; } //setter methods to set data values void setInt(int num) { this->num = num; } void setCh(char ch){ this->ch = ch; } }; int main() { sampleData s; s.setInt(100); s.setCh('Z'); cout<<'num = '< Produktion:
num = 100
ch = Z

I programmet ovan har vi samlat två medlemsvariabler tillsammans med getter- och settermetoderna i en klass. och detta är ett exempel på inkapsling.
Vi har förklarat två variabler, dvs num och ch som privata variabler så att de inte är tillgängliga för omvärlden. De är bara tillgängliga för de funktioner som vi har förklarat som offentliga. Således har vi dolda datamedlemmar som privata variabler i en klass.
Låt oss ta ett annat exempel för att bättre förstå inkapsling i C ++.
#include #include using namespace std; //Accounts class: includes salary info for a particular employee class Accounts{ int empId; double salary, basic, allowances, deductions; public: Accounts(int empId):empId(empId){} //read salary info void readEmployeeInfo(int empId){ cout<<'Enter basic for the employee'< basic; cout<>allowances; cout<>deductions; } //calculate salary double calculateSalary(){ salary = basic+ allowances - deductions; return salary; } //display details void display(){ salary = calculateSalary(); cout<<'Employee: '< Produktion:
Ange grundläggande för den anställde1: 10000
utsläppsrätter: 4324.43
avdrag: 1000
Anställd: 1
Lön: 13324,4

Detta är ännu ett exempel på inkapsling. Som visas ovan har vi en klasskonton som samlar kontodata och alla funktioner som fungerar på dessa data i en enda klasskonton. I huvudfunktionen kan vi skapa ett objekt av denna klass och få åtkomstfunktioner för att få önskad information.
Om några andra klasser nu säger att anställdsinformation vill komma åt kontodata kan den inte göra det direkt. Det måste skapa ett objekt för klasskonton och kommer endast att kunna komma åt de objekt som är offentliga. På detta sätt garanterar vi med inkapsling åtkomstkontroll av data och säkerställer också dataintegriteten.
hur man jämför filer i Linux
Skillnaden mellan inkapsling och abstraktion
Abstraktion och inkapsling är nära sammanbundna. Inkapslingshjälpmedel i abstraktion genom att samla data och metoder som fungerar på dessa data tillsammans.
Inkapsling Abstraktion Döljer data Döljer genomförandet Buntar data och metoder tillsammans Tillhandahåller ett abstrakt gränssnitt för användaren som bara visar vad som krävs Hjälpmedel för abstraktion Hjälper till återanvändning och säkerhet för koden. Implementerad som en klass med åtkomstspecifikatorer som definierar åtkomst till datamedlemmar och metoder Implementeras som en abstrakt klass och gränssnitt som inte kan instansieras.
Slutsats
Inkapsling är en av de viktigaste funktionerna i OOP eftersom det ger oss ett sätt att dölja data. Detta i sin tur gör data säkrare och skyddar dem från skadlig användning.
Inkapsling hjälper till med abstraktion, så att vi bara kan exponera det nödvändiga gränssnittet för slutanvändaren och dölja andra detaljer i enlighet därmed. I den här handledningen tittade vi på abstraktion och inkapslingskoncept i C ++.
I vår kommande handledning kommer vi att diskutera Arv i C ++ med exempel.
=> Besök här för den exklusiva C ++ Training Tutorial Series.
Rekommenderad läsning
- Dataabstraktion i C ++
- C ++ datatyper
- Bästa GRATIS C # -handledningsserie: Den ultimata C # -guiden för nybörjare
- 70+ BEST C ++ självstudier för att lära dig C ++ programmering GRATIS
- Biblioteksfunktioner i C ++
- Objektorienterad programmering i C ++
- Introduktion till datastrukturer i C ++
- Initialiseringslistor i C ++