
Цомпарисон Цхарт
Основа за поређење | Приватни | Протецтед |
---|---|---|
Наслеђивање својства за изведену класу | Изведена класа не може приступити приватним члановима основне класе. | Изведена класа може приступити заштићеним члановима основне класе. |
Приступачност | Приватни чланови класе су недоступни изван опсега класе. | Заштићени чланови класе су недоступни изван опсега класе осим класе изведене одмах. |
Доступно из сопствене класе | да | да |
Доступно из изведене класе | Не | да |
Доступно извана | Не | Не |
Дефиниција приватног
Чланови класа декларисани као приватни могу се преузети само у класи. Другим речима, члановима декларисаним у приватној секцији класе може се приступити само функција пријатеља и функција члана класе. Приватни чланови се не могу добити директно изведеној класи и недоступни су из опсега класа.
Ц ++ програм показује концепт приватних спецификатора приступа.
#инцлуде усинг намеспаце стд; цласс А {привате: инт и; публиц: воид гет () {цоут <> и; }}; класа Б: јавно А {публиц: воид схов () {и ++; цоут << "Ваш унесени број након инцрементцпп"> # укључује коришћење имена стд; цласс маммал {публиц: воид маммалМетход (воид) {цоут << "Долази под категорију сисара."У горе наведеном програму, један објекат подређене класе се креира са именом “об”, а чланској функцији родитељске класе може се приступити путем методе позива класе “марине_маммалМетход”. Иако се родитељској методи не може приступити директно са објектом “об”.
Дефинитион оф Протецтед
Чланови класа декларисани као заштићени у класи могу бити доступни само кроз функцију члана и функцију пријатеља класе. Овим заштићеним члановима не може се приступити изван опсега класе осим класе подређене (одмах изведене из ње). Он служи ограниченој сврси у наслеђивању и наслеђује својства на ограничен начин.
Доњи Ц ++ програм илуструје концепт заштићених спецификатора приступа.
#инцлуде усинг намеспаце стд; цласс аццоунт1 {протецтед: инт к, и; // доступан за изведену класу публиц: воид сет (инт а, инт б) {к = а; и = б; } воид схов () {цоут <У горњем примеру, подређена класа наслеђује својства основне класе зато што су чланови података декларисани као јавни или заштићени. Не би било могуће да су к и и декларисани као приватни у основној класи.
Кључне разлике између приватних и заштићених у Ц ++
- Заштићена кључна ријеч може се користити за изградњу чланова класе који су приватни за њихову класу, али се могу наслиједити и користити од изведене класе. Насупрот томе, то није могуће док се користи приватно, јер приватни чланови не могу бити наслеђени директно на изведену класу.
- Када је базна класа наслеђена коришћењем приватног спецификатора приступа, она чини све јавне и заштићене чланове основне класе, приватне чланове изведене класе. Насупрот томе, то није случај код заштићених спецификатора приступа.
Закључак
Приватни и заштићени су приступни спецификатори који се користе за различито постављање видљивости класе и њених чланова. Међутим, заштићена је флексибилнија од приватне.