Која је разлика између приватних и заштићених чланова Ц++ класа

Koja Je Razlika Izmedu Privatnih I Zasticenih Clanova C Klasa



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

У овом тексту ћемо разговарати о разлици између два главна спецификација приступа с, приватни и заштићени чланови Ц++ класе.

Спецификатор приватног приступа

Приватни чланови се декларишу помоћу кључне речи „ приватни ‘. Тхе спецификација приватног приступа ограничава приступ члановима класе само на саму класу. Код изван класе не може приступити приватном члану или га мењати. То значи да само методе декларисане у класи могу да приступе и раде на њима приватних чланова , чак ни изведене класе не могу да приступе приватних чланова . Уобичајена употреба приватних чланова је да се обезбеди исправан рад класе. Приватни чланови се користе за инкапсулацију података класе и обезбеђивање нивоа апстракције корисницима класе.







#инцлуде <иостреам>
Користећи именског простора стд ;

класа играч {

приватни :
назив стринга ;
инт старости ;

јавности :
празнина гетПлаиер ( )
{
цоут << 'Унесите име: ' ;
једење >> име ;
цоут << „Унесите узраст:“ ;
једење >> старости ;
}
празнина сховПлаиер ( )
{
цоут << 'Име: ' << име << ендл ;
цоут << 'Старост:' << старости << ендл ;
}
} ;

инт главни ( )
{
играч пл ;
пл. гетПлаиер ( ) ;
пл. сховПлаиер ( ) ;

повратак 0 ;
}

У коду изнад користимо методе јавног члана гетПлаиер() и сховПлаиер() да приступи ова два приватни чланови име и старости . Тхе гетПлаиер() функција добија унос од корисника и приказује га на екрану преко сховПлаиер() функција.



Излаз







Спецификатор заштићеног приступа

Заштићени чланови класе могу приступити и изведене класе и функције чланова саме класе. Заштићени чланови се користе да обезбеде ниво приступа изведеним класама без излагања детаља имплементације спољном свету. Заштићени чланови се декларишу помоћу кључне речи „ заштићени ‘и тхе дебело црево (:) карактера. Заштићени чланови дозвољавају да класа буде проширена и модификована, без угрожавања њеног интегритета. Изведена класа може да користи заштићени чланови да прецизирате или прилагодите понашање основне класе.

Ево примера класе са заштићени чланови :



#инцлуде <иостреам>
користећи простор имена стд;

класа играч {
приватни:
стринг наме;
инт аге;

заштићено:
инт гоалс;

јавно:
воид гетПлаиер ( )
{
цоут <> име;
цоут <> старост;
}
воид сховПлаиер ( )
{
цоут << 'Име: ' << име << ендл;
цоут << 'Старост:' << старости << ендл;
}
} ;

класа играч1 : јавни играч {

приватни:
стринг цоунтри;

јавно:
воид сет_гоалс ( инт г )
{
циљеви = г;
}
воид гетПлаиер1 ( )
{
гетПлаиер ( ) ;
цоут <> земља;
}
воид сховПлаиер1 ( )
{
цоут << 'циљеви: ' << циљевима << ендл;
сховПлаиер ( ) ;
цоут << 'Држава: ' << земљи << ендл;
}
} ;

инт маин ( )
{
плаиер1 пл;
пл.сет_гоалс ( 101 ) ;
пл.гетПлаиер1 ( ) ;
пл.сховПлаиер1 ( ) ;

повратак 0 ;
}

Тхе играч разред се састоји од два приватних чланова , име и старости , један заштићени члан, циљевима , и приватни чланови се користе унутар јавности функције чланова, гетПлаиер() и сховПлаиер() . Постоје две класе, играч и плаиер1 , од којих су обе основне класе. Један приватни члан, земљи , и три јавности методе чланова чине плаиер1 класа. Поставити циљеве() се користи за промену заштићеног члана циљеви' вредност. гетПлаиер1() позива тхе гетПлаиер() члан функције играч класе док додатно преузима унос за земљу. Слично овоме, сховПлаиер1() позива тхе сховПлаиер() функцију члана и штампа циљевима и земљи вредности.

Излаз

Разлика између приватних и заштићених чланова Ц++ класа

Овде су наведене неке од кључних разлика између Приватни и Заштићено чланови Ц++ класа.

1: Обим и функционалност

Када се разматра употреба спецификација приступа, кључно је пажљиво размислити о томе Обим и функционалност програма. А спецификација приватног приступа пружа највиши ниво сигурности и избегава нежељени приступ варијаблама и методама. С друге стране, а спецификација заштићеног приступа нуди шири опсег приступачности и флексибилности, што је од суштинског значаја када планирате да наследите изведене класе из основне класе.

2: Ниво приступа

Главна разлика између приватни и заштићени чланови је ниво приступа који пружају. Заштићено члановима могу приступити и изведене класе класе и функције чланова, али приватни чланови се могу добити само помоћу функција чланова класе.

3: Енкапсулација класе

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

Последње мисли

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