Cum Să Trageți Un Atribut

Cuprins:

Cum Să Trageți Un Atribut
Cum Să Trageți Un Atribut

Video: Cum Să Trageți Un Atribut

Video: Cum Să Trageți Un Atribut
Video: Срочно выбросьте эту гадость прочь из дома, это привлекает неудачи, болезни и смерть 2024, Decembrie
Anonim

Când lucrați cu obiecte și alte instanțe ale unei clase, accesarea atributelor este una dintre operațiile obișnuite pentru un programator. Obținerea accesului la anumite date stocate în obiecte poate fi dificilă, având în vedere metodele de securitate utilizate pentru acestea. Deci, atributele închise de specificatorii privați și protejați pot fi extrase dintr-o instanță de clasă numai într-o metodă aparținând unui obiect din aceeași clasă sau unui copil (pentru protejat).

Cum să trageți un atribut
Cum să trageți un atribut

Instrucțiuni

Pasul 1

Creați un obiect sau un pointer către o instanță a clasei al cărei atribut aveți nevoie în programul dvs. Construcția standard pentru o astfel de operație este CMyClass myObj1. Uneori, pentru a inițializa un obiect, trebuie să transmiteți anumiți parametri constructorului clasei. În acest caz, înregistrarea de creare a obiectului poate arăta astfel: CMyClass myObj1 (param1, param2, param3), unde CMyClass este numele clasei, myObj1 este numele obiectului creat și toți parametrii solicitați de constructor sunt enumerați în paranteze. Un pointer către o instanță de clasă este creat după cum urmează: CMyClass * pObj1 = new CMyClass (param1, param2, param3).

Pasul 2

Cea mai simplă modalitate de a apela un atribut este să vă referiți la el direct oriunde în program. Cu toate acestea, acest lucru este posibil numai pentru datele deschise descrise într-o clasă cu modificatorul public. Accesul direct printr-un obiect arată astfel: myObj1.attr1, unde attr1 este un atribut al acestei clase. Pentru un pointer, apelul ar fi: pObj1–> attr1.

Pasul 3

Dacă atributul la care trebuie să faceți referire are starea ascunsă și este descris într-o clasă cu modificatorul privat, atunci accesul la acesta este posibil doar dintr-o metodă aparținând aceleiași clase. Metoda sau funcția clasei trebuie să aibă statutul public public. Adăugați o nouă metodă la clasă, unde scrieți procesarea atributului necesar. În acest caz, parametrii pot fi transferați funcției, în funcție de valoarea cărora sunt efectuate anumite acțiuni. Funcția în sine poate, de asemenea, să returneze date, cum ar fi conținutul unui atribut. Cod de program C ++ care implementează ambele funcții pentru lucrul cu un atribut privat: clasa CMyClass {protected: int attr1; // atribut public: void funcA1 (int param) {attr1 = param; } int funcA2 () {return attr1; }};

Pasul 4

Astfel, pentru a seta atributul privat attr1 la valoarea de care aveți nevoie, apelați o metodă din aceeași clasă folosind obiectul creat anterior: myObj1.funcA1 (10) - printr-o operație implicită similară, valoarea 10 este plasată în atributul attr1. Când lucrați cu un pointer la o instanță a unei clase, o operație similară va arăta astfel: рObj1–> funcA (10). Pentru a prelua atributul privat attr1 și a afla valoarea stocată în acesta, apelați o altă metodă a clasei: int Res = myObj1.funcA2 (). În acest caz, variabilei întregi Res i se va atribui valoarea variabilei de clasă ascunsă.

Pasul 5

Dacă trebuie să apelați un atribut cu statut protejat în toate obiectele din clasele copil, consultați direct variabila sa. Cu toate acestea, atunci când lucrați în funcții de clase străine, accesul la datele protejate va trebui obținut în modul descris mai sus.

Pasul 6

Pentru a apela un atribut fără a crea un obiect, declarați variabila sa din clasă ca statică utilizând următoarea construcție: static int attr1. În acest caz, puteți extrage atributul oriunde în codul programului specificând intrarea: CMyClass:: attr1.

Recomandat: