Ao trabalhar com objetos e outras instâncias de uma classe, acessar atributos é uma das operações usuais para um programador. Obter acesso a certos dados armazenados em objetos pode ser difícil, dados os métodos de segurança usados para eles. Portanto, os atributos fechados pelos especificadores privados e protegidos podem ser retirados de uma instância de classe apenas em um método pertencente a um objeto da mesma classe ou a uma classe filha (para protegida).
Instruções
Passo 1
Crie um objeto ou um ponteiro para uma instância da classe cujo atributo você precisa em seu programa. A construção padrão para tal operação é CMyClass myObj1. Às vezes, para inicializar um objeto, você deve passar certos parâmetros para o construtor da classe. Nesse caso, o registro de criação do objeto pode ser assim: CMyClass myObj1 (param1, param2, param3), onde CMyClass é o nome da classe, myObj1 é o nome do objeto que está sendo criado e todos os parâmetros solicitados pelo construtor são listados em suportes. Um ponteiro para uma instância de classe é criado da seguinte maneira: CMyClass * pObj1 = new CMyClass (param1, param2, param3).
Passo 2
A maneira mais simples de chamar um atributo é referir-se a ele diretamente em qualquer lugar do programa. No entanto, isso só é possível para dados abertos descritos em uma classe com o modificador público. O acesso direto por meio de um objeto se parece com isto: myObj1.attr1, onde attr1 é um atributo desta classe. Para um ponteiro, a chamada seria: pObj1–> attr1.
etapa 3
Se o atributo ao qual você precisa se referir tiver o status oculto e for descrito em uma classe com o modificador privado, o acesso a ele só será possível a partir de um método pertencente à mesma classe. O método ou função da classe deve ter o status público público. Adicione um novo método à classe, onde escreva o processamento do atributo necessário. Nesse caso, os parâmetros podem ser passados para a função, dependendo do valor do qual certas ações são realizadas. A própria função também pode retornar dados, como o conteúdo de um atributo. Código de programa C ++ que implementa ambas as funções para trabalhar com um atributo privado: class CMyClass {protected: int attr1; // atributo público: void funcA1 (int param) {attr1 = param; } int funcA2 () {return attr1; }};
Passo 4
Assim, para definir o atributo privado attr1 para o valor que você precisa, chame um método da mesma classe usando o objeto criado anteriormente: myObj1.funcA1 (10) - por uma operação implícita semelhante, o valor 10 é colocado no atributo attr1. Ao trabalhar com um ponteiro para uma instância de uma classe, uma operação semelhante será semelhante a esta: рObj1–> funcA (10). Para recuperar o atributo privado attr1 e descobrir o valor armazenado nele, chame outro método da classe: int Res = myObj1.funcA2 (). Neste caso, a variável inteira Res receberá o valor da variável de classe oculta.
Etapa 5
Se você precisar chamar um atributo com status protegido em todos os objetos de classes filhas, consulte sua variável diretamente. Porém, ao trabalhar em funções de classes estrangeiras, o acesso aos dados protegidos deverá ser obtido da forma descrita acima.
Etapa 6
Para chamar um atributo sem criar um objeto, declare sua variável na classe como estática usando a seguinte construção: static int attr1. Nesse caso, você pode retirar o atributo em qualquer lugar no código do programa, especificando a entrada: CMyClass:: attr1.