I denna handledning lär vi oss om åtkomstmodifierare för C ++ - klasser med hjälp av exempel. Åtkomstmodifierarna för C ++ är offentliga, privata och skyddade.
En av huvudfunktionerna i objektorienterade programmeringsspråk som C ++ är datadöljande .
Döljande av data avser begränsning av åtkomst till datamedlemmar i en klass. Detta för att förhindra att andra funktioner och klasser manipulerar klassdata.
Det är dock också viktigt att göra vissa medlemsfunktioner och medlemsdata tillgängliga så att de dolda uppgifterna kan manipuleras indirekt.
Åtkomstmodifierarna för C ++ låter oss bestämma vilka klassmedlemmar som är tillgängliga för andra klasser och funktioner och vilka inte.
Till exempel,
class Patient ( private: int patientNumber; string diagnosis; public: void billing() ( // code ) void makeAppointment() ( // code ) );
Här döljs variablerna patientNummer och diagnos i Patient
klassen med hjälp av private
nyckelordet, medan medlemsfunktionerna görs tillgängliga med hjälp av public
nyckelordet.
Typer av C ++ åtkomstmodifierare
I C ++ finns 3 åtkomstmodifierare:
public
private
protected
public Access Modifier
- Det
public
nyckelordet används för att skapa offentliga medlemmar (data och funktioner). - De offentliga medlemmarna är tillgängliga från alla delar av programmet.
Exempel 1: C ++ public Access Modifier
#include using namespace std; // define a class class Sample ( // public elements public: int age; void displayAge() ( cout << "Age = " << age << endl; ) ); int main() ( // declare a class object Sample obj1; cout <> obj1.age; // call class function obj1.displayAge(); return 0; )
Produktion:
Ange din ålder: 20 Ålder = 20
I det här programmet har vi skapat en klass med namnet Sample
som innehåller en public
variabel ålder och en public
funktion displayAge()
.
I main()
har vi skapat ett objekt av Sample
klassen med namnet obj1. Vi kommer sedan åt de offentliga elementen direkt genom att använda koder obj.age
och obj.displayAge()
.
privat åtkomstmodifierare
- Det
private
nyckelordet används för att skapa privata medlemmar (data och funktioner). - De privata medlemmarna kan endast nås inom klassen.
- Vänklasser och vänfunktioner kan dock komma åt privata medlemmar.
Exempel 2: C ++ privat åtkomstspecifikator
#include using namespace std; // define a class class Sample ( // private elements private: int age; // public elements public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare an object Sample obj1; cout <> ageInput; // call function and pass ageInput as argument obj1.displayAge(ageInput); return 0; )
Produktion:
Ange din ålder: 20 Ålder = 20
I main()
, objektet obj1 kan inte direkt få tillgång till klassvariabelåldern.
// error cin>> obj1.age;
Vi kan bara indirekt manipulera ålder genom den offentliga funktionen displayAge()
, eftersom denna funktion tilldelar ålder till argumentet som skickas in i den, dvs funktionsparametern int a
.
skyddad åtkomstmodifierare
Innan vi lär oss om protected
åtkomstspecifikatorn, se till att du känner till arv i C ++.
- Det
protected
nyckelordet används för att skapa skyddade medlemmar (data och funktions). - De skyddade medlemmarna kan nås inom klassen och från den härledda klassen.
Exempel 3: C ++ skyddad Access Specifier
#include using namespace std; // declare parent class class Sample ( // protected elements protected: int age; ); // declare child class class SampleChild : public Sample ( public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare object of child class SampleChild child; cout <> ageInput; // call child class function // pass ageInput as argument child.displayAge(ageInput); return 0; )
Produktion:
Ange din ålder: 20 Ålder = 20
Här ChildSample
är en ärvd klass som härrör från Sample
. Den variabla åldern anges Sample
med protected
nyckelordet.
Det betyder att ChildSample
kan komma åt ålder eftersom det Sample
är dess överordnade klass.
Vi ser detta eftersom vi har tilldelat åldersvärdet ChildSample
även om ålder anges i Sample
klassen.
Sammanfattning: offentlig, privat och skyddad
public
element kan nås av alla andra klasser och funktioner.private
element kan inte nås utanför den klass där de deklareras, förutom avfriend
klasser och funktioner.protected
element är precis somprivate
, förutom att de kan nås av härledda klasser.
Specifikatorer | Samma klass | Härledd klass | Utanför klass |
---|---|---|---|
public | Ja | Ja | Ja |
private | Ja | Nej | Nej |
protected | Ja | Ja | Nej |
Obs! Som standard är klassmedlemmar i C ++ private
, om inte annat anges.