encapsulation c
En komplet oversigt over indkapsling i C ++:
Vi diskuterede abstraktion i detaljer i vores tidligere tutorial. Abstraktion skjuler som bekendt implementeringsoplysningerne for brugeren og udsætter kun den grænseflade, der kræves af brugeren.
I denne vejledning vil vi diskutere endnu et vigtigt træk ved OOP, dvs. indkapsling. Abstraktion og indkapsling går hånd i hånd. Faktisk kan vi sige, at den indkapslede kode hjælper os med abstraktion. Med andre ord er indkapsling og abstraktion tæt bundet.
=> Besøg her for det komplette C ++ kursus fra eksperter.
kravsporbarhedsmatrixskabelon med eksempel
Således kan vi diskutere disse to begreber sammen, da der er en meget tynd linje mellem indkapsling og abstraktion.
Hvad du vil lære:
- Hvad er indkapsling?
- Implementering af indkapsling
- Forskellen mellem indkapsling og abstraktion
- Konklusion
- Anbefalet læsning
Hvad er indkapsling?
Dataindkapsling refererer til processen med at binde data og funktioner eller metoder, der fungerer på disse data, sammen til en enkelt enhed, så de er beskyttet mod interferens og misbrug udefra.
Dette er et vigtigt objektorienteret programmeringskoncept, og det fører til endnu et OOP-koncept kendt som “ Data gemmer sig ”. Indkapsling skjuler data og dets medlemmer, mens abstraktion kun udsætter de nødvendige detaljer eller grænseflader for omverdenen.
På en måde præsenterer abstraktion det “abstrakte syn” af de skjulte data for omverdenen. Således afgav vi allerede en erklæring om, at indkapsling og abstraktion går hånd i hånd.
En klasse i C ++ er den, hvor vi samler datamedlemmer, og de funktioner, der fungerer på disse datamedlemmer sammen med adgangsspecifikatorer som private, offentlige og beskyttede repræsenterer indkapsling. Vi har allerede diskuteret adgangsspecifikatorer i vores tidligere tutorial om klasser og objekter.
Vi ved også, at klassemedlemmer som standard er private. Når vi erklærer klassemedlemmer som private og metoder til at få adgang til klassemedlemmer som offentlige, implementerer vi virkelig indkapsling. Samtidig giver vi et abstrakt billede af data til omverdenen i form af offentlige metoder.
Implementering af indkapsling
Indkapsling i C ++ implementeres som en klasse, der samler data og de funktioner, der fungerer på disse data sammen. Data erklæres for det meste som private, så de ikke er tilgængelige uden for klassen. Metoderne eller funktionerne erklæres som offentlige og kan tilgås ved hjælp af klassens objekt.
Vi kan dog ikke direkte få adgang til private medlemmer, og dette kaldes dataskydning. Når dette er gjort, er data sikret og kan kun fås ved hjælp af funktioner i den bestemte klasse, hvor dataene erklæres.
// 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:
tal = 100
ch = Z

I ovenstående program har vi samlet to medlemsvariabler sammen med getter- og settermetoderne i en klasse. og dette er et eksempel på indkapsling.
Vi har deklareret to variabler, dvs. num og ch som private variabler, så de ikke er tilgængelige for omverdenen. De er kun tilgængelige for de funktioner, som vi har erklæret som offentlige. Således har vi skjulte data-medlemmer som private variabler i en klasse.
Lad os tage et andet eksempel for bedre at forstå indkapsling 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:
Indtast grundlæggende for medarbejderen1: 10000
kvoter: 4324.43
fradrag: 1000
Medarbejder: 1
Løn: 13324.4

Dette er endnu et eksempel på indkapsling. Som vist ovenfor har vi en klassekonti, der samler kontodata og alle de funktioner, der fungerer på disse data, i en enkelt klassekonti. I hovedfunktionen kan vi oprette et objekt i denne klasse og få adgang til funktioner for at få den ønskede information.
Hvis nogle andre klasser nu siger, at medarbejderoplysningerne vil have adgang til kontodata, kan det ikke gøre det direkte. Det bliver nødvendigt at oprette et objekt af klassekonti og vil kun kunne få adgang til de poster, der er offentlige. På denne måde garanterer vi adgang til kontrol af data ved hjælp af indkapsling og sikrer også dataintegriteten.
forskel mellem funktionel og ikke-funktionel test
Forskellen mellem indkapsling og abstraktion
Abstraktion og indkapsling er tæt bundet. Indkapsling hjælper med abstraktion ved at samle data og metoder, der fungerer på disse data sammen.
Indkapsling Abstraktion Skjuler dataene Skjuler implementering Bundter data og metoder sammen Tilbyder en abstrakt grænseflade til brugeren, der kun afslører det, der kræves Hjælp til abstraktion Hjælper med genbrug og sikkerhed af koden. Implementeret som en klasse med adgangsspecifikatorer, der definerer adgang til datamedlemmer og metoder Implementeret som en abstrakt klasse og grænseflader, der ikke kan instantieres.
Konklusion
Indkapsling er en af de vigtigste funktioner i OOP, da det giver os en måde at skjule dataene på. Dette gør igen data mere sikre og beskytter dem mod ondsindet brug.
Indkapsling hjælper med abstraktion, så vi kun kan udsætte den nødvendige grænseflade for slutbrugeren og skjule andre detaljer i overensstemmelse hermed. I denne vejledning kiggede vi på abstraktion og indkapslingskoncepter i C ++.
I vores kommende vejledning vil vi diskutere arv i C ++ med eksempler.
=> Besøg her for den eksklusive C ++ træningsvejledningsserie.
Anbefalet læsning
- Dataabstraktion i C ++
- C ++ datatyper
- Bedste GRATIS C # tutorialsserie: Den ultimative C # guide til begyndere
- 70+ BEST C ++ tutorials til at lære C ++ programmering GRATIS
- Biblioteksfunktioner i C ++
- Objektorienteret programmering i C ++
- Introduktion til datastrukturer i C ++
- Initialiseringslister i C ++