Рецоммендед, 2024

Избор Уредника

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

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

Цомпарисон Цхарт

Основа за поређењеПриватниПротецтед
Наслеђивање својства за изведену класу
Изведена класа не може приступити приватним члановима основне класе.Изведена класа може приступити заштићеним члановима основне класе.
Приступачност
Приватни чланови класе су недоступни изван опсега класе.Заштићени чланови класе су недоступни изван опсега класе осим класе изведене одмах.
Доступно из сопствене класедада
Доступно из изведене класеНеда
Доступно изванаНеНе

Дефиниција приватног

Чланови класа декларисани као приватни могу се преузети само у класи. Другим речима, члановима декларисаним у приватној секцији класе може се приступити само функција пријатеља и функција члана класе. Приватни чланови се не могу добити директно изведеној класи и недоступни су из опсега класа.

Ц ++ програм показује концепт приватних спецификатора приступа.

 #инцлуде усинг намеспаце стд; цласс А {привате: инт и; публиц: воид гет () {цоут <> и; }}; класа Б: јавно А {публиц: воид схов () {и ++; цоут << "Ваш унесени број након инцрементцпп"> # укључује коришћење имена стд; цласс маммал {публиц: воид маммалМетход (воид) {цоут << "Долази под категорију сисара." 

У горе наведеном програму, један објекат подређене класе се креира са именом “об”, а чланској функцији родитељске класе може се приступити путем методе позива класе “марине_маммалМетход”. Иако се родитељској методи не може приступити директно са објектом “об”.

Дефинитион оф Протецтед

Чланови класа декларисани као заштићени у класи могу бити доступни само кроз функцију члана и функцију пријатеља класе. Овим заштићеним члановима не може се приступити изван опсега класе осим класе подређене (одмах изведене из ње). Он служи ограниченој сврси у наслеђивању и наслеђује својства на ограничен начин.

Доњи Ц ++ програм илуструје концепт заштићених спецификатора приступа.

 #инцлуде усинг намеспаце стд; цласс аццоунт1 {протецтед: инт к, и; // доступан за изведену класу публиц: воид сет (инт а, инт б) {к = а; и = б; } воид схов () {цоут < 

У горњем примеру, подређена класа наслеђује својства основне класе зато што су чланови података декларисани као јавни или заштићени. Не би било могуће да су к и и декларисани као приватни у основној класи.

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

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

Закључак

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

Top