Inleiding tot toegangsmodificaties in C ++

Gegevens beschermen is al lang in de trend, omdat dit het belangrijkste onderdeel van elk domein is. Als het in de verkeerde hand gaat, zul je veel lijden. Om op een systematische manier met uw gegevens om te gaan, biedt objectgeoriënteerd programmeren een opvallende functie die bekend staat als het verbergen van gegevens. Dit concept kan worden geïmplementeerd in C ++ met behulp van Access-modificaties. Dit zijn trefwoorden die worden gebruikt om de toegankelijkheid van methoden, klassen en andere leden in te stellen. Public, Private en Protected staan ​​bekend als Access Modifiers of Access Specifiers in object-georiënteerde programmeertalen. Om te voorkomen dat de functies van een programma rechtstreeks toegang hebben tot de interne weergave van een klasse, wordt gegevens verbergen gebruikt.

Soorten toegangsmodificaties in C ++

Er zijn 3 soorten toegangsmodificaties in C ++

  1. Openbaar
  2. Privaat
  3. beschermde

Laten we deze modificaties eens bekijken met voorbeelden:

1. Openbaar

Zoals de naam al doet vermoeden, beschikbaar voor iedereen. Alle leden van de klas zijn voor iedereen beschikbaar nadat ze ze als openbaar hebben verklaard. Een openbaar lid is overal buiten de klas toegankelijk, maar binnen een programma. Gegevensleden kunnen ook door andere klassen worden benaderd als ze openbaar worden gemaakt. Aangezien er geen beperkingen zijn in de openbare modifier, kunnen we de (.) Dot-operator gebruiken om direct toegang te krijgen tot de functies en gegevens van leden.

Code:

#include
using namespace std;
class parent
(
private:
int p;
protected:
int q;
public:
int r;
parent() //constructor to initialize data members
(
p = 100;
q = 200;
r = 300;
)
);
//Inheritance concept
class child: public parent
(
//q becomes protected and r becomes public members of class child
public:
void showdata()
(
cout << "p is not accessible" << endl;
cout << "value of q is " << q << endl;
cout << "value of r is " << r << endl;
)
);
int main()
(
child c; //object of derived class(child)
c.showdata();
//cp = 100; invalid : private member, no access
//cq = 200; invalid : q is now private member of child class
//cr = 300; invalid : r is also now a private member of child class
return 0;
)

Output:


2. Privé

Een private modifier is een van de beste Access Modifiers in C ++. Het bereik van privégegevensleden blijft binnen de klasse, daarom heeft de functie binnen de klasse toegang tot klassenleden die als privé zijn verklaard. Omdat dat is wat privé betekent, alleen jij bepaalt wie jouw dingen (zoals een vriend) kan gebruiken of niet. Je hebt geen directe toegang tot leden via een object of functie die buiten de klas valt. De functie van een vriend (zoals ik al zei kan je dingen gebruiken) kan worden gebruikt om toegang te krijgen tot privégegevens van de klas. U krijgt een compilatie-fout bij het openen van privégegevensleden van overal buiten de klas.

Code:

#include
using namespace std;
// Defining class
class Circle
( // private data member
private:
double radius;
// public member function
public:
void areaOfCircle(double r)
( // member function can access private
// data member radius
radius = r;
double area = 3.14*radius*radius;
cout << "Radius is: " << radius << endl;
cout << "Area is: " << area;
) );
// Main function
int main()
( // creating class object
Circle c;
/* trying to access private data member
directly outside the class */
c.areaOfCircle(4.5);
return 0;
)

Output:

Door de bovenstaande code te gebruiken, kunnen we indirect toegang krijgen tot privégegevensleden van een klasse met behulp van de openbare ledenfuncties van de klasse indirect.

3. Beschermd

De laatste toegangsspecificatie die vooral wordt gebruikt als Toegangsmodificatoren in C ++, omdat het gedrag vrij gelijkaardig is aan een privétoegangsmodificator. Beschermde gegevensleden of functies kunnen geen directe toegang hebben vanuit andere klassen. U kunt een vriendenfunctie gebruiken om toegang te krijgen tot beschermde leden omdat deze functionaliteit mogelijk is. Er zijn enkele beperkingen voor de beschermde modifier. Leden die in beschermd zijn verklaard, kunnen alleen worden beschermd tot het volgende niveau, waarna het privé wordt.

Code:

#include
using namespace std;
// Base class
class Parent
( // Protected data members
protected:
int id_protect;
);
// Derived class
class Child : public Parent
( public:
void set(int id)
( /* Child class to access the inherited protected data
members of the Base class */
id_protect = id;
)
void display() (
cout << "id_protect is: " << id_protect << endl;
)
);
// Main function
int main() (
Child p;
/* member function(derived class) can easily
access the data members(protected) of the base class */
p.set(07);
p.display();
return 0;
)

Output:

Uit de bovenstaande code kunt u zien dat id_protect als beveiligd is verklaard en toegankelijk is met de lidfunctie van de afgeleide klasse. Dit betekent dat u toegang kunt krijgen tot het beveiligde gegevenslid van de basisklasse met behulp van de lidfunctie van de afgeleide klasse.

Voordelen van toegangsmodificaties in C ++

Hieronder staan ​​de verschillende voordelen van Access Modifiers in C ++:

  • Toegangsmodificator geeft u de bevoegdheid om uw gegevens te beheren, afhankelijk van de scenario's. Als u in een bankdomein werkt, moet u privégegevensleden gebruiken om uw gegevens verborgen te houden voor andere gebruikers, de autoriteit ligt in uw hand. Je kunt ze openbaar maken als je wilt, maar het zal geen goede aanpak zijn, want in dat geval kan iedereen je gegevens op elk moment wijzigen
  • Alle openbare leden van de basisklasse worden openbare leden van de afgeleide klasse. Op dezelfde manier worden alle beschermde leden van de basisklasse beschermde leden van de afgeleide klasse die u zullen helpen bij het gemakkelijk beheren van gegevens in elk aspect omdat, zoals u kunt zien, er geen verandering is in de toegang tot deze leden als u openbare erfenis gebruikt in uw programmeertaal .
  • In het privé-erfscenario worden alle openbare leden van de basisklasse privé-leden van de afgeleide klasse. Op dezelfde manier worden alle beschermde leden van de basisklasse privéleden van de afgeleide klasse, terwijl in het beschermde overervingsscenario alle openbare leden van de basisklasse beschermde leden van de afgeleide klasse worden en alle beschermde leden van de basisklasse beschermde leden van de afgeleide klasse worden. Merk op dat in C ++ toegangsspecificatie werkt per klasse, niet per object.

Conclusie

Verschillende programmeertalen hebben geen privé- en beveiligde toegang en daarom kan elke gebruiker deze gebruiken op de manier die zij willen. C ++ coders zullen gebruikers niet vertrouwen, dus ze mogen het niet gebruiken. Omdat leden van openbare gegevens een ernstig potentieel risico kunnen vormen voor bugs of hackers.

Aanbevolen artikelen

Dit is een handleiding voor toegangsmodificaties in C ++. Hier bespreken we de soorten toegangsmodificaties in C ++ samen met zijn voorbeelden en enkele voordelen. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Toegang tot modificaties in Java
  2. Inkapseling in C ++
  3. C ++ Commando's
  4. Beste C ++ compiler
  5. Soorten toegangsmodificaties in C #
  6. Inkapseling in JavaScript
  7. Top 11 kenmerken en voordelen van C ++