Tässä kirjoituksessa keskustelemme näiden kahden pääasiallisen erosta pääsyn määrittäjä s, yksityinen ja suojattu C++-luokan jäseniä.
Yksityinen käyttöoikeusmääritys
Yksityiset jäsenet ilmoitetaan käyttämällä avainsanaa ' yksityinen ‘. The yksityisen pääsyn määrittäjä rajoittaa pääsyn luokan jäsenille vain itse luokkaan. Luokan ulkopuolinen koodi ei voi käyttää tai muuttaa yksityistä jäsentä. Tämä tarkoittaa, että vain luokassa ilmoitetut menetelmät voivat käyttää ja toimia siinä yksityisiä jäseniä , edes johdetut luokat eivät pääse käsiksi yksityisiä jäseniä . Yleinen käyttö yksityisiä jäseniä on varmistaa luokan oikea toiminta. Yksityiset jäsenet käytetään kapseloimaan luokkatiedot ja tarjoamaan abstraktiotason luokan käyttäjille.
#include
käyttämällä nimiavaruus std ;
luokkaa pelaaja {
yksityinen :
merkkijonon nimi ;
int ikä ;
julkinen :
mitätön getPlayer ( )
{
cout << 'Anna nimi:' ;
syöminen >> nimi ;
cout << 'Anna ikä:' ;
syöminen >> ikä ;
}
mitätön showPlayer ( )
{
cout << 'Nimi:' << nimi << endl ;
cout << 'Ikä:' << ikä << endl ;
}
} ;
int pää ( )
{
pelaaja pl ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;
palata 0 ;
}
Yllä olevassa koodissa käytämme julkisia jäsenmenetelmiä getPlayer() ja showPlayer() päästäkseen näihin kahteen yksityinen jäsenet' nimi ja ikä . The getPlayer() toiminto saa syötteen käyttäjiltä ja näyttää sen näytöllä kautta showPlayer() toiminto.
Lähtö
Suojatun pääsyn määrittäjä
Suojatut jäsenet luokkaan voidaan päästä käsiksi sekä johdetuilla luokilla että itse luokan jäsenfunktioilla. Suojatut jäsenet käytetään tarjoamaan tietyn tason pääsy johdannaisiin luokkiin paljastamatta toteutustietoja ulkomaailmalle. Suojatut jäsenet ilmoitetaan käyttämällä avainsanaa ' suojattu ' ja kaksoispiste (:) merkki. Suojatut jäsenet mahdollistaa luokan laajentamisen ja muokkaamisen vaarantamatta sen eheyttä. Johdettu luokka voi käyttää suojattuja jäseniä tarkentaa tai mukauttaa perusluokan käyttäytymistä.
Tässä on esimerkki luokasta suojattuja jäseniä :
#include
käyttäen nimiavaruutta std;
luokan pelaaja {
yksityinen:
merkkijonon nimi;
int ikä;
suojattu:
int tavoitteet;
julkinen:
mitätön getPlayer ( )
{
cout <> nimi;
cout <> ikä;
}
tyhjä showPlayer ( )
{
cout << 'Nimi:' << nimi << endl;
cout << 'Ikä:' << ikä << endl;
}
} ;
luokan pelaaja1: julkinen pelaaja {
yksityinen:
merkkijono maa;
julkinen:
mitättömiä asetettuja_tavoitteita ( int g )
{
maalit = g;
}
mitätön getPlayer1 ( )
{
getPlayer ( ) ;
cout <> maa;
}
tyhjä showPlayer1 ( )
{
cout << 'tavoitteet: ' << tavoitteet << endl;
showPlayer ( ) ;
cout << 'Maa: ' << maa << endl;
}
} ;
int main ( )
{
pelaaja1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;
palata 0 ;
}
The pelaaja luokkaan kuuluu kaksi yksityisiä jäseniä , nimi ja ikä , yksi suojattu jäsen, tavoitteet , ja yksityinen jäseniä hyödynnetään sisällä julkinen jäsentoiminnot, getPlayer() ja showPlayer() . On kaksi luokkaa, pelaaja ja pelaaja 1 , jotka molemmat ovat perusluokkia. Yksi yksityinen jäsen, maa , ja kolme julkinen jäsenmenetelmät muodostavat pelaaja 1 luokkaa. Asettaa tavoitteita() käytetään suojatun jäsenen vaihtamiseen tavoitteet' arvo. getPlayer1() kutsuu getPlayer() jäsentoiminto pelaaja luokkaa samalla kun haetaan lisäksi maata koskevat syötteet. Samanlainen kuin tämä, showPlayer1() kutsuu showPlayer() jäsentoiminto ja tulostaa tavoitteet ja maa arvot.
Lähtö
Ero C++-luokkien yksityisten ja suojattujen jäsenten välillä
Tässä on lueteltu joitakin tärkeimpiä eroja Yksityinen ja Suojattu C++-luokkien jäseniä.
1: Laajuus ja toiminnallisuus
Kun harkitaan pääsymääritteiden käyttöä, on erittäin tärkeää miettiä tarkasti soveltamisalaan ja toiminnallisuutta ohjelmasta. A yksityisen pääsyn määrittäjä tarjoaa korkeimman suojaustason ja estää tahattoman pääsyn muuttujiin ja menetelmiin. Toisaalta a suojatun pääsyn määrittäjä tarjoaa laajemman valikoiman saavutettavuutta ja joustavuutta, mikä on välttämätöntä, kun aiotaan periä johdettuja luokkia perusluokista.
2: Käyttöoikeustaso
Tärkein ero yksityinen ja suojattuja jäseniä on niiden tarjoaman pääsyn taso. Suojattu jäsenet voivat olla käytettävissä sekä luokan johdetuilla luokilla että jäsenfunktioilla, mutta yksityinen jäseniä voidaan hankkia vain luokan jäsentoiminnoilla.
3: Luokan kapselointi
Toinen ratkaiseva ero yksityinen ja suojattu jäsenet ovat heidän roolinsa luokan kapseloinnin ylläpitämisessä. Eristääksesi tiedot ja tarjotaksesi luokan käyttäjille jonkin verran abstraktiota, yksityinen jäsenet työllistyvät. Suojattu jäseniä käytetään hallitsemaan perintörakennetta ja tarjoamaan pääsy perusluokan jäsenille johdettujen luokkien mukaan.
Lopulliset ajatukset
Yksityinen ja suojattuja jäseniä ovat kaksi keskeistä pääsytasoa C++-luokassa. The yksityinen access specifier tekee luokan jäsenistä kaikkien ulkopuolisten käyttäjien ulottumattomissa, ja sitä käytetään tietojen säilyttämiseen yksityinen luokan sisällä. Sitä vastoin a suojattu access specifier sallii pääsyn luokan jäseniin vain johdettujen luokkien kautta, sitä käytetään tarjoamaan perusluokkatoimintoja ja mahdollistaa muuttamisen muuttamatta perusluokan käyttäytymistä. Luokan jäsenten käyttöoikeustasolla on ratkaiseva rooli luokan kapseloinnin ylläpitämisessä ja pääsyn tason tarjoamisessa luokan käyttäjille.