Mitä eroa on C++-luokkien yksityisillä ja suojatuilla jäsenillä?

Mita Eroa On C Luokkien Yksityisilla Ja Suojatuilla Jasenilla



C++ on olio-ohjelmointikieli (OOP), joka tarjoaa mekanismin tietojen ja toimintojen kapseloimiseksi yhdeksi entiteetiksi, jota kutsutaan luokaksi. Yksi luokan olennaisista ominaisuuksista on kyky määrittää jäsenten käyttöoikeustaso. Olio-ohjelmoinnissa, pääsyn määrittäjät käytetään ohjaamaan luokan kenttien ja menetelmien näkyvyyttä ja saavutettavuutta. Suojattu , julkinen , ja yksityinen käyttöoikeustasot ovat kolme C++:n käyttöoikeustasojen perustyyppiä.

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.