Vertailukaavio
Vertailun perusteet | yksityinen | suojattu |
---|---|---|
Perinnöllinen omaisuus johdettuun luokkaan | Johdettu luokka ei voi käyttää perusluokan yksityisiä jäseniä. | Johdettu luokka voi käyttää perusluokan suojattuja jäseniä. |
saavutettavuus | Luokan yksityiset jäsenet eivät ole käytettävissä luokkakentän ulkopuolella. | Luokan suojatut jäsenet eivät ole käytettävissä luokkakentän ulkopuolella, lukuun ottamatta välittömästi luotua luokkaa. |
Käytettävissä omasta luokastaan | Joo | Joo |
Saatavana johdetusta luokasta | Ei | Joo |
Käytettävissä ulkopuolelta | Ei | Ei |
Yksityisen määritelmä
Yksityisiksi julistetut luokan jäsenet voidaan hakea vain luokassa. Toisin sanoen luokkaan yksityisessä osassa ilmoitetut jäsenet voivat käyttää vain luokan ystävätoimintoa ja jäsenfunktiota. Yksityiset jäsenet eivät ole saatavana johdettuun luokkaan suoraan, eivätkä ne ole käytettävissä luokkakentän ulkopuolella.
C ++ -ohjelma näyttää yksityisen pääsyn määrittelijöiden käsitteen.
# sisällytetään käyttämällä nimiavaruutta std; luokka A {yksityinen: int i; julkinen: void get () {cout <> i; }}; luokka B: public A {public: void show () {i ++; cout << "n Syötetty numero incrementcppin jälkeen>> sisältää nimiavaruuden std; luokka nisäkäs {public: void mammalMethod (void) {cout << "Se kuuluu nisäkäsluokkaan." <Yllä annetussa ohjelmassa luodaan yksi lapsiluokan kohde nimellä "ob" ja vanhemman luokan jäsenfunktio on käytettävissä soittamalla lapsiluokan menetelmällä "marine_mammalMethod". Vaikka emo-menetelmää ei voi käyttää suoraan objektilla ”ob”.
Suojelun määritelmä
Luokan jäseniksi, jotka on ilmoitettu suojatuksi luokassa, voidaan käyttää vain luokan jäsentoimintoa ja ystävätoimintoa. Näitä suojattuja jäseniä ei voi käyttää luokka-alueen ulkopuolelle, lukuun ottamatta lapsiluokkaa (välittömästi siitä peräisin oleva). Se palvelee perinnöllisesti rajoitettua tarkoitusta ja perii ominaisuudet rajoitetusti.
Alla oleva C ++ -ohjelma havainnollistaa suojattujen pääsykäsitteiden käsitettä.
# sisällytetään käyttämällä nimiavaruutta std; luokka-tili1 {suojattu: int x, y; // johdettuun luokkaan julkinen: void set (int a, int b) {x = a; y = b; } void show () {cout <Edellä olevassa esimerkissä lapsiluokka perii perusluokan ominaisuudet, koska datan jäsenet julistetaan julkisiksi tai suojatuksi. Ei olisi mahdollista, jos x ja y olisi ilmoitettu yksityisiksi perusluokassa.
Yksityiset ja suojatut C ++: n erot
- Suojattua avainsanaa voidaan käyttää luokkaan kuuluvien jäsenten rakentamiseen, jotka ovat yksityisiä omalle luokalleen, mutta jotka voidaan periä ja käyttää johdetun luokan avulla. Sitä vastoin tämä ei ole mahdollista yksityisen käytön aikana, koska yksityisiä jäseniä ei voi periä suoraan johdetulle luokalle.
- Kun perusluokka peritään yksityisen pääsyn määrittelijän avulla, se tekee kaikki perusluokan yleisöt ja suojatut jäsenet, johdetun luokan yksityiset jäsenet. Sitä vastoin tämä ei ole suojatun pääsyn määrittelijöissä.
johtopäätös
Yksityiset ja suojatut ovat pääsyn määrittelijöitä, joita käytetään luokan ja sen jäsenten näkyvyyden asettamiseen eri tavalla. Suojattu on kuitenkin joustavampi kuin yksityinen.