C kezdők-barát funkciók az első expozíció, c kezdőknek

  • Barátságos funkció - egy függvény, amely nem része az osztály hozzáfér az összes baráti osztály is.
  • Friend funkció bejelentett egy osztályon belül módosító ismerősének

Úgy tűnik, egy egyszerű és érthető meghatározása. Funkció bejelentett egy osztályon belül, kész az első barátja módosító és normálisan használható, és független a funkció egy osztály az órákon kívül. Ha érdekli ez a téma, akkor próbálja alkalmazni ezt az elméletet a gyakorlatban. Azt hiszem, a legtöbb próbáltak problémákkal szembesülnek.







Példaként tanulok a kódot C ++, ahol az összehasonlítás a szokásos funkciók az osztály egy barátságos funkciót. Összehasonlítás megy csak, hogy a kód van írva az egyik esetben egy másik. Ugyanakkor lehet tökéletesen látni az írás-barát funkciók a szintaxis

C ++ kód-barát funkció és a normál funkció az osztály

int x; // Saját tagja osztály

barátja void get_x (int. A ); // Prototype barát funkciók bevitele a magértékeket x

void get_x (int); // Prototype hagyományos beviteli módot az értékeket a saját x

void show (); // függvény prototípusa kijelző egy privát területen x

/ * Funkció prototípusok vannak meghatározva az osztályon belül. A funkciók maguk ismertetnek kívül * /

void get_x (int N. obj_A) // A funkció nem része az osztályban, de úgy működik, mint egy

obj_A. X = N; // x-osztályú elem továbbított a vett N paraméter

void A. get_x (int N) // funkció részeként osztály A

X = N; // privát tagja x-osztályú tárolódik a kapott N paraméter

void A. Show () // funkció része a osztályú és játszik a közvetítő szerepet

cout <

Azonnal akkor vegye figyelembe, hogy a prototípus barátságos leírt funkciók területén a magán. Sőt, lehet leírni azt a más területeken, de nem tudja elrejteni az egyik fontos különbség a szokásos módon az osztály. A program magában foglalja a két teljesen azonos, abban az értelemben, a módszer és mind ugyanazt a feladatot. Az egyik módszer, barátságos, a második módszer általában. Tehát a szokásos módon a területen a magán- és elérhetetlen lesz anélkül közvetítő, ő nem tudja, mit kell tennie, és barátságos eljárás mediátor nincs szükség. Ez a rész az elmélet, és azt mondja:






Barátságos funkció - egy függvény, amely nem része az osztály hozzáfér az összes baráti osztály is.

Mivel az x elem nyilvánították magánterület. Ez azután megkívánja, az x mediátor működik, mint egy közvetítő funkció show (). show () függvény bejelentett egy osztályon belül, majd minden mezőt elérhető az osztálynak. Remélem, megtanultam, hogy ezen a területen a magán és további leírás felesleges

Röviden:
Az osztályon belül bejelentett

  • Egyéni x elem
  • Barát bemeneti függvény x értékek
  • Normál bemeneti funkció x értékeket
  • A funkció feltérképezésére privát elem

Miután egy leírást az osztály az írás funkciók.
Első írásos funkciója, amely a paraméter N és kap egy példányt, feljegyzi ezt az n x befelé kapott példány. A funkció nem alapul osztály és van leírva, mint egy önálló, független. Lehet, hogy csak azért, mert a kulcsszó barátja előtt a prototípusa a funkció az osztályon belül. Ismét megjegyzem, hogy ez a funkció lehet leírni területén a magán-

A második leír egy funkciója, amely egyetlen paramétert. A funkció alapul osztályú, és így hozza a vett paraméterből befelé az osztályból, amelybe és támogatott.

Általában mindkét funkciót látja el egy és ugyanazon cselekvés, a különbség az, hogy egy funkció kerül végrehajtásra önálló és független osztály, miközben leírt magán. A fenti körülmények nem akadályozza meg neki, hogy a munka az osztálytermen kívül közvetítők nélkül
A második funkció alapul egy bizonyos osztály, és nem tudott dolgozni elemei a saját területén közvetítők nélkül
Általában azért jöttem, hogy, hogy a

  • barátja funkció lehet nyilvánítani még magán, és nem kell mediátorok
  • Normál funkció az osztály közvetítőknek dolgozni tagjai a magán

jelenítse meg a saját x használtam normális működéséhez az osztály. Ez a funkció működik, mint egy közvetítő között a program, és az osztály

Továbbra is csak ami belül van a fő funkciója. Igazából nem kellene bármilyen kérdése van. Különbség felhívja látható szabad szemmel.

  • Az első esetben, a szokásos függvény paraméterei és feldolgozza azokat
  • A második esetben, kezeljük az osztály a megfelelő objektum

Ebben az első változatban a munka ugyanaz, mint a második.




Kapcsolódó cikkek