Quan es treballa amb objectes i altres instàncies d’una classe, accedir als atributs és una de les operacions habituals d’un programador. Tenir en compte els mètodes de seguretat que s’utilitzen poden ser difícils d’accedir a determinades dades emmagatzemades en objectes. Per tant, els atributs tancats pels especificadors privats i protegits es poden extreure d'una instància de classe només en un mètode que pertanyi a un objecte de la mateixa o a una classe secundària (per a protecció).
Instruccions
Pas 1
Creeu un objecte o un punter a una instància de la classe l'atribut que necessiteu al programa. La construcció estàndard per a aquesta operació és CMyClass myObj1. De vegades, per inicialitzar un objecte, heu de passar determinats paràmetres al constructor de classes. En aquest cas, el registre de creació d'objectes pot tenir aquest aspecte: CMyClass myObj1 (param1, param2, param3), on CMyClass és el nom de la classe, myObj1 és el nom de l'objecte que s'està creant i es mostren tots els paràmetres sol·licitats pel constructor. entre parèntesis. Es crea un punter a una instància de classe de la següent manera: CMyClass * pObj1 = CMyClass nova (param1, param2, param3).
Pas 2
La forma més senzilla de cridar a un atribut és fer-hi referència directament a qualsevol lloc del programa. Tot i això, això només és possible per a dades obertes descrites en una classe amb el modificador públic. L’accés directe a través d’un objecte té aquest aspecte: myObj1.attr1, on attr1 és un atribut d’aquesta classe. Per a un punter, la trucada seria: pObj1–> attr1.
Pas 3
Si l'atribut al qual heu de referir-vos té l'estat ocult i es descriu en una classe amb el modificador privat, només hi podreu accedir des d'un mètode de la mateixa classe. El mètode o funció de la classe ha de tenir l'estatus públic públic. Afegiu un mètode nou a la classe, on escriviu el processament de l'atribut requerit. En aquest cas, es poden passar paràmetres a la funció, en funció del valor del qual es realitzin determinades accions. La funció en si mateixa també pot retornar dades, com ara el contingut d'un atribut. Codi de programa C ++ que implementa les dues funcions per treballar amb un atribut privat: classe CMyClass {protected: int attr1; // atribut públic: void funcA1 (int param) {attr1 = param; } int funcA2 () {return attr1; }};
Pas 4
Per tant, per establir l'atribut privat attr1 al valor que necessiteu, truqueu a un mètode de la mateixa classe mitjançant l'objecte creat anteriorment: myObj1.funcA1 (10): mitjançant una operació implícita similar, el valor 10 es col·loca a l'atribut attr1. Quan es treballa amb un punter a una instància d'una classe, una operació similar tindrà aquest aspecte: рObj1–> funcA (10). Per recuperar l'atribut privat attr1 i esbrinar el valor emmagatzemat, truqueu a un altre mètode de la classe: int Res = myObj1.funcA2 (). En aquest cas, a la variable sencera Res se li assignarà el valor de la variable de classe oculta.
Pas 5
Si heu de trucar a un atribut amb estat protegit en tots els objectes de les classes secundàries, consulteu-ne la variable directament. Tanmateix, quan es treballa en funcions de classes estrangeres, l’accés a les dades protegides s’haurà d’obtenir de la manera descrita anteriorment.
Pas 6
Per trucar a un atribut sense crear cap objecte, declareu la seva variable de la classe com a estàtica mitjançant la següent construcció: static int attr1. En aquest cas, podeu extreure l'atribut en qualsevol lloc del codi del programa especificant l'entrada: CMyClass:: attr1.