Ero ystävätoiminnon ja ystäväluokan välillä
Sisältö
Ystävä-toiminto ja ystäväluokka ovat tekniikoita, joilla päästään luokan yksityisiin jäseniin käyttämällä ystäväsanaa. Ystävätoiminnon ja ystäväluokan välillä on yleinen ero siinä, että kun ystävätoimintoa käytetään, yksityisluokan jäseniin pääsee, mutta ystäväluokassa vain ystäväluokan nimiin saadaan pääsy, ei luokan yksityisiin jäseniin.
ystäväominaisuus Voiko funktio tai luokka käyttää sitä negatiivisella vaikutuksella oliokeskeiseen kehykseen, koska se heikentää kapselointi joka on olio- paradigma. Tästä syystä ystäväominaisuutta on käytettävä viisaasti, muuten se voisi tauko tietojen piilottaminen koodista.
Tämä ystäväominaisuus ei ole kumpikaan kommutatiivinen eikä transitiivinen. X on Y: n ystävä, ei päätellä, että Y on myös X: n ystävä. Jos X on Y: n ystävä ja Y on Z: n ystävä, ei tarkoita, että X on Z: n ystävä.
-
- Vertailutaulukko
- Määritelmä
- Keskeiset erot
- johtopäätös
Vertailutaulukko
Vertailun perusteet | Ystävätoiminto | Ystäväluokka |
---|---|---|
perustiedot | Se on toiminto, jota käytetään ystäväavainsanan avulla, jotta muille kuin jäsenille tarkoitettu toiminto pääsee luokan yksityisille jäsenille. | Se on luokka, jota käytetään ystävähakusanalla päästäkseen toisen luokan yksityisiin jäseniin. |
Välitysilmoitus | On käytettävä. | Ei pakollinen. |
Käyttää | Ystävätoimintoa voidaan käyttää joissain kuljettajan ylikuormitustilanteissa. | Ystäväluokkaa voidaan käyttää, kun luokka luodaan toisen luokan päälle. |
Määritelmä Ystävätoiminto
ystävätoiminto Käytetään luokan yksityisten ja suojattujen jäsenten pääsyyn sallimalla muulle kuin jäsentoiminnolle pääsy. Tämän tyyppisessä toiminnossa ystäväsanaa käytetään ennen toiminnon nimeä ilmoituksen tekohetkellä. Ystävätoimintoihin sovelletaan joitain rajoittavia ehtoja. Ensimmäinen ehto on, että lapsiluokka ei peri ystävätoimintoa. Toinen ehto on, että säilytysluokan määrittelijä ei välttämättä ole läsnä ystävätoiminnossa, mikä tarkoittaa, että sitä ei voida julistaa staattiseksi ja ulkoiseksi.
Ystäväfunktiota ei kutsuta luokan kutsuvalla kohteella. Esimerkkejä ystävätoiminnoista ovat: globaali funktio, luokan jäsentoiminto, funktiomalli voi olla ystävätoiminto. Ymmärretään se esimerkin avulla.
#sisältää Ystävätoiminto vaaditaan, kun toiminnon on päästävä käyttämään kahta tai useampaa itsenäistä luokkaa, sisäisiä jäseniä. Toisaalta ystäväluokkaa tarvitaan, kun luokka vaatii pääsyn toisen luokan jäseniin. Kun usean jäsentoiminnon on oltava kyseisen toiminnon ystävä, siinä tapauksessa on parempi käyttää ystäväluokkaa.
johtopäätös