Introduksjon til innkapsling i C ++

Innkapsling betyr prosessen med å pakke sammen dataene og funksjonene i en enkelt kapsel. Det sikrer også dataene fra andre klasser ved å begrense tilgangen. I utgangspunktet skjuler det dataene. Hvis vi tar et virkelig eksempel på høyskole, har vi forskjellige avdelinger som fysikk, kjemi og biologi, osv. Det kan oppstå en situasjon der i, leder for fysikkavdelingen trenger litt informasjon fra Biologisk avdeling, han kan ikke få tilgang til dataene fra den avdelingen direkte. Først skulle han kontakte sjefen for avdelingen for biologi og deretter be ham om å oppgi dataene. Slik fungerer innkapsling.

Hvordan bruke innkapsling i C ++?

For å oppnå dette må vi følge trinnene nedenfor:

  1. Først må vi gjøre alle datamedlemmene private.
  2. Deretter bør det opprettes offentlige getter- og setter-funksjoner for hvert datamedlem på en slik måte at get-funksjon får verdien av datamedlem og setfunksjonen stiller inn verdien av datamedlemmet.

Innkapsling og skjul av data kan oppnås i C ++, ved å bruke brukerdefinerte typer kalt Classes. Tilgangsspesifikasjonene i klasser kan være private, beskyttede eller offentlige. Som standard er alle elementene i en klasse private. Etter behovet kan vi endre tilgangsnivåene. Tre nivåer av tilgangsspesifikasjoner er som nedenfor:

  • Privat : Medlemmer av samme klasse kan få tilgang til dataene.
  • Offentlig : Alle klassene har tilgang til dataene.
  • Beskyttet : Tilgang til data er tillatt for medlemmer av samme klasse eller avledede klasser.

Den beste bruken av innkapsling gjøres bare når vi bruker enten private eller beskyttede. Når vi bruker offentlig, må vi sørge for at vi kjenner dets riktige behov i koden.

For å forklare dette vil vi ta en titt på klassen nedenfor.

Her er fysikk, kjemi og biologi av typen dobbel og er private variabler. GetTotalMarks () er en offentlig metode som brukes til å hente ut samlet karakter for alle de tre fagene. Vi har ikke tilgang til hvert fag i en annen klasse på grunn av dets beskyttelsesnivå. Men vi har tilgang til metoden og kan brukes til å hente ut totale karakterene ved å gi individuelle fagkarakterer. Vi kan sette merkene for hvert emne ved å bruke setter-metoden, som vi vil se i neste eksempel.

Eksempel på innkapsling i C ++ med trinn

Nedenfor er trinnvise instruksjoner for å implementere innkapslingen.

1) La oss se på scenariet der vi trenger å beregne studentenes totale karakter ved å beregne summen i tre fag, dvs. fysikk, kjemi og biologi. Men betingelsen er slik at en annen klasse

2) Først inkluderer iostream for inngangs- og utgangsfunksjonaliteten.

3) Bruk navnet mellomrom std

4) Skriv en klasse for å inneholde alle dataene og funksjonene. La det være Student.

5) Erklær de private variablene fysikk, kjemi og biologi. Dette forteller at vi ikke får tilgang til variablene utenfor denne studentklassen. Men vi kan få tilgang til dem lokalt og endre verdien om nødvendig. For å endre verdien, kan vi skrive en offentlig setter-funksjon og få tilgang til den i en annen klasse.

6) Skriv en funksjon som heter SetMarks, som vil bli brukt til å angi verdiene til de private variablene. Siden vi ikke får tilgang til de private variablene fysikk, kjemi og biologi utenfor studentklassen, trenger vi denne funksjonen for å sette disse verdiene fra den eksterne klassen. Denne metoden vil være offentlig ettersom vi trenger tilgang til den utenfor klassen. Vi trenger tre parametere for å få verdiene for hvert emne. Inne i funksjonen vil vi sette verdien på de private variablene.

7) Vi trenger en metode til å få samlet karakter fra alle de tre fagene ved å legge til karakterene. Denne metoden er også offentlig. Bare ring denne metoden utenfor klassen, så får vi summen av karakterene til de tre fagene.

8) Nå utenfor denne klassen vil vi skrive hovedfunksjonen.

9) Først inne i hovedfunksjonen vil vi få tilgang til klassestudenten og lage et objekt for klassen.

10) I neste trinn vil vi kalle funksjonen for å sette merkene til de tre fagene. Her vil vi føre merkene som parametere til funksjonen. Nedenfor er kodestykket for å oppnå dette.

11) Neste, vil vi få totalt karakterer og skrive ut verdien. Og returner 0 på slutten.

12) Kan du gjette utdataene til koden? Du har rett. Utgangen vises nedenfor.

Utgang: 240

13) Nå skal vi analysere hvordan vi fikk denne utgangen. Siden vi ikke kunne få tilgang til de private variablene, skrev vi en Setter-funksjon som tar verdier fra annen klasse og endrer variablene. Getter-funksjonen henter variablene, legger dem til og sender studentenes totale karakter. Hver gang vi overfører tre forskjellige verdier til setter-funksjon, kan vi se at totale karakterer vi får også varierer tilsvarende.

14) Fra dette kan vi si at innkapsling hjelper oss å beskytte noen av de nødvendige dataene, og setter og getter-funksjoner brukes til å endre verdiene. Ved å gjøre dette. Beskyttelse oppnås også uten å hemme vårt formål.

Konklusjon

I denne artikkelen har vi lært om hvordan innkapsling kan oppnås i C ++. Ved å gjøre dette kan vi oppnå følgende fordeler.

  • Klasser etter innkapsling øker lesbarheten og reduserer kompleksiteten.
  • Det hjelper med å beskytte dataene.
  • Personvernet til dataene i klassen kan endres uten å endre hele koden ved å bruke tilgangsmodifiserere.

Anbefalte artikler

Dette er en guide til Encapsulation i C ++. Her diskuterer vi hvordan du bruker innkapsling i C ++ sammen med Eksempel på innkapsling i C ++ med trinn. Du kan også se på følgende artikler for å lære mer -

  1. Krypteringsalgoritme
  2. Symmetrisk nøkkelkryptering
  3. Hva er kryptering?
  4. Introduksjon til kapsling i C
  5. Innkapsling i JavaScript (fordeler)
  6. Få tilgang til modifikatorer i PHP