C ++ protegido

C ++ protegido

Como muitas outras linguagens de programação, o C ++ também nos fornece a característica do esconderijo de dados para fins de segurança. Utilizamos modificadores de acesso em um programa C ++ para proteger nossos dados em diferentes níveis de segurança. O C ++ inclui os especificadores de acesso público, privado e protegido para proteger suas variáveis ​​e funções. O especificador de acesso protegido é um pouco diferente do público e do público. Este artigo se concentrará no modificador de acesso "protegido" em exemplos de código C ++. Então vamos começar. Abra o aplicativo Shell, crie um novo arquivo C ++ e abra -o no editor.

Exemplo 01: Public vs. Privado

Antes de focar no especificador de acesso protegido, precisamos aprender o funcionamento de um especificador de acesso público e privado. Depois de usar o espaço para nome C ++ no início de um código, declaramos um teste de classe com uma variável pública "A" e uma variável privada "B". Inicializamos um objeto "t" de uma classe de teste no método main ().

O valor 10 é atribuído à variável "A", que é pública. Usando o objeto "cout", exibimos o valor da variável "a" usando o objeto "T". O mesmo objeto de classe de teste "T" foi utilizado aqui para atribuir o valor "12" ao membro de dados privados "B". Usando o objeto "cout" novamente, utilizamos o objeto "T" para exibir a variável "B" Valor. Por último, a declaração de retorno 0 sairá do programa com sucesso. É hora de salvar esse novo código C ++ primeiro e compilá -lo no shell.

Você deve garantir que o compilador C ++ “G ++” esteja instalado e totalmente configurado em seu sistema. Então, tentamos a instrução do compilador G ++ no shell seguindo o nome de um arquivo “Protegido.CC ”. Execução desta instrução do compilador, temos o erro na linha 13 quando atribuímos o valor à variável privada "b" usando o objeto "T". Isso ocorre porque a variável privada no teste de classe não pode ser usada fora desta classe, eu.e., Em qualquer função ou classe. O modificador de acesso público permitirá que todas as variáveis ​​e função estejam disponíveis para todos. Por outro lado, o modificador de acesso privado não permite o acesso de variáveis ​​e funções a ninguém, eu.e., toda classe.

Vamos ver como podemos usar membros de dados privados para serem exibidos no shell. Atualizamos o mesmo arquivo c ++ no teste da classe declarando as duas funções públicas, get () e set (). A implementação de ambas as funções foi feita fora da classe "teste". A função "get ()" é usada para retornar o valor do membro de dados privados "y" à função principal () para exibição.

A função set () usa o valor passado pela função principal () e a atribui ao membro de dados privado "y" do teste de classe. Dentro do método main (), estamos usando o objeto "t" do teste de classe para atribuir o valor "10" à variável pública "x" do teste de classe. A declaração cout exibe o valor de "x" na concha. Agora, estamos chamando a função set () por objeto "t" para passar o valor "14" para o membro de dados privados "y" do "teste". A declaração Cout chamou a função "Get" para exibir o valor da variável "y" no shell. Este código nos permitirá exibir o valor privado do membro de dados no shell usando as mesmas funções de dados públicos de classe. Vamos salvar este código e executá -lo:

Temos os valores para "X" e "Y" exibidos na execução deste código atualizado recentemente:

Exemplo 02:

Vamos dar uma olhada no modificador de acesso protegido agora. Abrimos o arquivo de código e o atualizamos um pouco. Adicionado as bibliotecas necessárias junto com o espaço para nome C ++. Declarou uma classe pai e uma classe infantil derivada do "pai". A classe pai contém uma variável protegida "x" do tipo inteiro. A classe infantil contém apenas duas funções públicas, eu.e., defina e obtenha. Após as aulas, implementamos as duas funções da classe infantil, definindo o valor de "X" e retornando à função principal ().

A função principal () é criar objeto "c" para a classe infantil. Este objeto é usado para definir o valor para variável "x" e exibi -lo no shell através do método get (). O uso de um objeto para atribuir valor à variável "x" mostrará um erro na execução. Em seguida, salve o código e saia do arquivo.

A saída é a mesma que o esperado, eu.e., erro.

Para evitar esse erro ao atribuir o valor a um membro de dados protegido, devemos usar as funções de dados públicos, i i.e., Defina e obtenha funções na aula infantil. Usando a função set (), podemos atribuir o valor à variável protegida "x", como fizemos no seguinte código de imagem. Depois disso, podemos usar facilmente a função get () para exibir o membro de dados protegido no shell dentro da instrução Cout Object. Salve este código e compile depois disso:

Depois de compilar o código atualizado, não temos erros de compilação desta vez. Temos o valor da variável protegida "x" exibida na tela do shell usando a consulta de execução.

Exemplo 03:

Vamos dar uma olhada em outro exemplo para usar o modificador de acesso protegido. Dentro deste exemplo, usaremos multi-aprimoramento para torná-la mais clara e adicionar três classes A, B e C. A classe A é a classe pai de B, e B é o pai de C. A e B contêm as variáveis ​​protegidas "x" e "y". A classe B e C contém funções como membros de dados públicos, eu.e., set () e get ().

Classe B usa suas funções para definir e retornar o valor para o membro de dados da Classe A "X", pois B é sua classe derivada. Por outro lado, a classe C usa suas funções para definir e obter o valor "y" da classe B como classe C é sua classe derivada. Dentro da função de código do driver main (), criamos um objeto de classe B e definimos o valor para a variável "x". O mesmo objeto exibe o valor da variável "x" no shell. O objeto Classe C foi criado para definir o valor da variável protegida "y" e exibi -lo no shell. Vamos executar o código a seguir para ver os resultados:

A saída mostra o uso das funções Set () e Gets () estão substituindo o valor já inicializado para ambas as variáveis ​​protegidas.

Conclusão:

Isso se tratava de usar um modificador de acesso protegido para proteger os membros de dados para as aulas em C++. Para deixar mais claro, também discutimos o exemplo do uso de membros de dados públicos e privados. Além disso, discutimos a herança para demonstrar o trabalho e o uso de especificadores de acesso seguro em nosso código. Usando a função set () e get () é uma vantagem para evitar erros ao executar este artigo. Esperamos que você tenha achado este artigo útil. Verifique os outros artigos de dica do Linux para obter mais dicas e tutoriais.