Увод у Аццесс Модифиерс у Ц ++

Заштита података је већ дуже време у тренду, јер је то најважнији део сваког домена. Ако оде у погрешну руку, претрпићете пуно. Да бисте систематски обрађивали своје податке, објектно оријентисано програмирање нуди значајну функцију познату као Сакривање података. Овај концепт се може имплементирати у Ц ++ помоћу Аццесс модификатора. То су кључне речи које се користе за подешавање приступачности метода, класа и других чланова. Јавни, приватни и заштићени познати су под називом Модификатори приступа или Спецификтери приступа на објектно оријентисаним програмским језицима. За спречавање функција програма да директно приступе унутрашњем представљању класе, користи се скривање података.

Врсте Модификатора приступа у Ц ++

Постоје 3 врсте Модификатора приступа у Ц ++

  1. Јавно
  2. Приватни
  3. Заштићено

Погледајмо ове модификаторе са примерима:

1. Јавно

Као што име сугерира, доступно свима. Сви чланови класе бит ће доступни свима након што их прогласе јавним. Јавном члану може се приступити било где изван класе, али у оквиру програма. Члановима података могу приступити и друге класе ако су проглашене јавним. Како нема ограничења у јавном модификатору, можемо користити оператора тачака (.) За директан приступ функцијама и подацима чланова.

Шифра:

#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;
)

Излаз:


2. Приватно

Приватни модификатор је један од најбољих Модификатора приступа у Ц ++. Обим чланова приватних података остаје унутар класе и зато функција унутар класе може приступити члановима класе који су декларирани као приватни. Јер то је оно што приватно значи само ви одлучујете ко може да користи ваше ствари (попут пријатеља) или не. Не можете директно приступити члановима било којим објектом или функцијом која је изван класе. Пријатељева функција (као што рекох, може користити ваше ствари) може се користити за приступ приватним подацима чланова класе. Добићете грешку у времену компилације док приступате члановима приватних података са било ког места изван класе.

Шифра:

#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;
)

Излаз:

Помоћу горе наведеног кода индиректно можемо приступити члановима приватних података класе користећи јавне чланске функције класе.

3. Заштићено

Посљедњи спецификатор приступа који се најважније користи као Модификатор приступа у Ц ++, јер је његово понашање прилично слично модификатору приватног приступа. Заштићеним члановима података или функцијама не може се приступити директно из других класа. Можете користити функцију пријатеља за приступ заштићеним члановима јер то омогућава ову функцију. Постоје одређена ограничења за заштићени модификатор. Чланови који су проглашени заштићенима могу се заштитити само до следећег нивоа и тада постају приватни.

Шифра:

#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;
)

Излаз:

Из горњег кода можете видети да је ид_протецт декларисан као заштићен и да му се може приступити помоћу функције чланова изведене класе. То значи да можете приступити заштићеном члану података основне класе користећи функцију члана изведене класе.

Предности Модификатора приступа у Ц ++

Испод су различите предности Аццесс Модифиерс-а у Ц ++:

  • Модификатор приступа пружа вам овлаштење за контролу података у зависности од сценарија. Ако радите у домену банке, тада морате користити чланове приватних података да бисте податке чували скривеним од других корисника, ауторитет је у вашим рукама. Можете их учинити јавним ако желите, али то неће бити сјајан приступ, јер у том случају свако може у било ком тренутку променити ваше податке
  • Сви јавни чланови основне класе постају јавни чланови изведене класе. На исти начин, сви заштићени припадници основне класе постају заштићени чланови изведене класе што ће вам помоћи при управљању подацима у сваком погледу јер, као што видите, нема промена у приступу тим члановима ако користите јавно наслеђивање у свом програмском језику .
  • У сценарију приватног наследства, сви јавни чланови основне класе постају приватни чланови изведене класе. На исти начин, сви заштићени припадници основне класе постају приватни чланови изведене класе док, у сценарију заштићеног насљеђивања, сви јавни припадници основне класе постају заштићени чланови изведене класе, а сви заштићени припадници основне класе постају заштићени чланови изведене класе. Имајте на уму да у Ц ++ спецификацији приступа дјелује на основу класе, а не на објекту.

Закључак

Неколико програмских језика нема приватни и заштићени приступ, стога их сваки корисник може користити на жељени начин. Ц ++ кодери неће веровати корисницима тако да им није дозвољено да их користе. Пошто чланови јавних података могу бити озбиљан потенцијални ризик за бугове или хакере.

Препоручени чланци

Ово је водич за Аццесс Модифиерс на Ц ++. Овде смо расправљали о врстама Модификатора приступа у Ц ++ заједно са његовим примерима и неким предностима. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Приступите модификаторима на Јави
  2. Инкапсулација у Ц ++
  3. Ц ++ команде
  4. Најбољи компајлер Ц ++
  5. Врсте модулатора приступа у Ц #
  6. Инкапсулација у ЈаваСцрипт-у
  7. Топ 11 функција и предности Ц ++

Категорија: