prieteni clasa

Pentru a oferi un acces facil la date prin intermediul mecanismului unei chei publice de clasă nu este întotdeauna convenabil, deoarece în acest caz, variabilele de instanță publice sunt disponibile imediat, adică, să-l pot aplica pentru oricine din orice parte a programului. Un mecanism numit „prieteni ai clasei“ într-o mai flexibilă și vă permite să acordați selectiv de acces. De exemplu, puteți acorda acces la variabile ale clasei private doar pentru o funcție sau clasă.

Prietenii de clasă - funcționează și clase care au acces deplin la clasă, la fel ca și metodele de clasă. Pentru drepturile altora, funcția trebuie să fie descrisă în caietul de sarcini de clasă prieten.

De exemplu, determinată de o funcție independentă care intrările de date de la tastatura la clasa obiectului MyStr. Pentru a face acest lucru, avem nevoie pentru a descrie caracteristici prietenoase clasa MyStr prototip:

using namespace std;

char * buf; // datele private

// functie prototip prietenos

prieten void inpstr (MyStr, int);

num int static; // contor numărul de serie

int nn; // numărul liniei de serie

>; // clasa definiție end

// defini funcția prieten

void inpstr (MyStr s, int n)

fs = new char [n + 1]; // obține larma. memorie

cout<<"ввод с клавиатуры:"; // «приглашение» для ввода

int main (int argc, char * argv [])

MyStr c3 = c1; // Crearea unui obiect c3 și atribuirea un c1 valoare

cout<<"c1-"; // отображаем объект ввода

inpstr (c1,10); // apelează funcția prieten

cout<<"новый Объект с1"<

Până în prezent, am rezolvat problemele cu utilizarea individuală a fiecărui clasa, dar pentru a crea baza de date matrice cerute de obiecte de clasă.

Crearea de rețele de obiecte, cum ar fi MyStr V [10], avem nevoie de un constructor cu inițializare implicită. Acest constructor poate arata astfel:

// implicit este alocată în șirul de 60 de caractere

buf = "liber"; // string constant

Creați o serie de obiecte implicite și imprimați-l ca un tabel.

// metoda pentru a afișa datele obiect în formă tabelară

articole similare