Introduktion till inkapsling i C ++

Inkapsling betyder processen för att förpacka data och funktioner i en enda kapsel. Det skyddar också uppgifterna från andra klasser genom att begränsa åtkomsten. I princip döljer det uppgifterna. Om vi ​​tar ett verkligt exempel på högskola, har vi olika avdelningar som fysik, kemi och biologi, etc. En situation kan uppstå där i, chefen för fysikavdelningen behöver lite information från biologiska avdelningen, han kan inte få tillgång till data från den avdelningen direkt. Först bör han kontakta chefen för avdelningen för biologi och sedan be honom att lämna uppgifterna. Så här fungerar kapsling.

Hur använder man kapsling i C ++?

För att uppnå detta måste vi följa stegen nedan:

  1. Först måste vi göra alla datamedlemmar privata.
  2. Sedan bör offentliga getter- och setterfunktioner skapas för varje dataledamot på ett sådant sätt att get-funktionen får värdet på datamedlemmen och inställningsfunktionen ställer in värdet på dataleden.

Inkapsling och gömning av data kan uppnås i C ++ genom att använda användardefinierade typer som kallas klasser. Åtkomstspecifikationerna i klasser kan vara privata, skyddade eller offentliga. Som standard är alla objekt i en klass privata. Enligt behovet kan vi ändra åtkomstnivåerna. Tre nivåer av åtkomstspecifikationer är som nedan:

  • Privat : Medlemmar i samma klass kan komma åt uppgifterna.
  • Allmänt : Alla klasser kan komma åt data.
  • Skyddad : Tillgång till data är tillåtet för medlemmar i samma klass eller härledda klasser.

Den bästa användningen av inkapsling görs endast när vi använder antingen privata eller skyddade. När vi använder offentligt måste vi se till att vi känner till dess korrekta behov i koden.

För att förklara detta kommer vi att titta på klassen nedan.

Här är fysik, kemi och biologi av typen dubbel och är privata variabler. GetTotalMarks () är en offentlig metod som används för att hämta de totala poängen för alla tre ämnen. Vi kan inte komma åt varje ämne i en annan klass på grund av dess skyddsnivå. Men vi har åtkomst till metoden och kan användas för att hämta totala poäng genom att lämna enskilda ämnesmärken. Vi kan ställa in markeringarna för varje ämne med hjälp av setter-metoden, som vi kommer att titta på i nästa exempel.

Exempel på inkapsling i C ++ med steg

Nedan följer en steg för steg-instruktion för att implementera inkapslingen.

1) Låt oss ta hänsyn till scenariot där vi behöver beräkna studentens totala poäng genom att beräkna summan i tre ämnen, dvs. fysik, kemi och biologi. Men villkoret är sådant att en annan klass

2) Ta först med iostream för in- och utgångsfunktionen.

3) Använd namnet space std

4) Skriv en klass för att hålla alla data och funktioner. Låt det vara Student.

5) Förklara de privata variablerna fysik, kemi och biologi. Detta säger att vi inte kan komma åt variablerna utanför denna studentklass. Men vi kan komma åt dem lokalt och ändra värdet vid behov. För att ändra värdet kan vi skriva en public setter-funktion och få tillgång till den i en annan klass.

6) Skriv en funktion som heter SetMarks, som kommer att användas för att ställa in värdena för de privata variablerna. Eftersom vi inte kan komma åt de privata variablerna fysik, kemi och biologi utanför studentklassen behöver vi den här funktionen för att ställa in dessa värden från den externa klassen. Denna metod kommer att vara offentlig eftersom vi behöver tillgång till den utanför klassen. Vi behöver tre parametrar för att få värdena för varje ämne. Inuti funktionen ställer vi in ​​värdet på de privata variablerna.

7) Vi behöver ytterligare en metod för att få totalpoäng från alla tre ämnen genom att lägga till poängen. Denna metod är också offentlig. Kalla bara den här metoden utanför klassen så får vi summan av de tre ämnena.

8) Nu utanför denna klass kommer vi att skriva huvudfunktionen.

9) Inom huvudfunktionen kommer vi först åt klassstudenten och skapa ett objekt för klassen.

10) I nästa steg kommer vi att anropa funktionen för att ställa in de tre motivens markeringar. Här kommer vi att överföra markeringarna som parametrar till funktionen. Nedan är kodstycket för att uppnå detta.

11) Därefter får vi totala poäng och skriver ut värdet. Och returnera 0 i slutet.

12) Kan du gissa kodens utgång? Du har rätt. Utgången visas nedan.

Utgång: 240

13) Nu kommer vi att analysera hur vi fick denna utgång. Eftersom vi inte kunde komma åt de privata variablerna skrev vi en Setter-funktion som tar värden från andra klass och ändrar variablerna. Getter-funktionen hämtar variablerna, lägger till dem och skickar studentens totala poäng. Varje gång vi överför tre olika värden till setterfunktionen, kan vi se att totala poäng vi får också varierar i enlighet därmed.

14) Från detta kan vi säga att inkapsling hjälper oss att skydda en del av de data som behövs, och även setter- och getterfunktioner används för att ändra deras värden. Genom att göra det här. Skydd uppnås också utan att hämma vårt syfte.

Slutsats

I den här artikeln har vi lärt oss hur kapsling kan uppnås i C ++. Genom att göra detta kan vi uppnå följande fördelar.

  • Klasser efter kapsling ökar läsbarheten och minskar komplexiteten.
  • Det hjälper till att skydda data.
  • Integriteten för data i klassen kan ändras utan att ändra hela koden med hjälp av åtkomstmodifierare.

Rekommenderade artiklar

Detta är en guide till Encapsulation i C ++. Här diskuterar vi hur man använder inkapsling i C ++ tillsammans med Exempel på inkapsling i C ++ med steg. Du kan också titta på följande artiklar för att lära dig mer -

  1. Krypteringsalgoritm
  2. Symmetrisk nyckelkryptering
  3. Vad är kryptering?
  4. Introduktion till kapsling i C
  5. Inkapsling i JavaScript (fördelar)
  6. Få åtkomst till modifierare i PHP

Kategori: