Recomendado, 2024

Escolha Do Editor

Diferença entre particulares e protegidos em C ++

Existem três tipos de proteção de acesso definidos na linguagem de programação C ++ para ocultar os dados. A ocultação de dados é uma parte essencial da programação orientada a objetos. As palavras-chave privadas e protegidas oferecem o nível de proteção de acesso para ocultar os dados e funcionar dentro de uma classe. Os membros privados não podem ser herdados enquanto o membro protegido pode ser herdado, mas em um intervalo limitado. Esses especificadores indicam a visibilidade dos membros em que private é mais restritivo que protegido.

Gráfico de comparação

Base para comparaçãoPrivadoProtegido
Herdando propriedade para a classe derivada
A classe derivada não pode acessar membros privados da classe base.Classe derivada pode acessar membros protegidos da classe base.
Acessibilidade
Os membros privados da classe estão inacessíveis fora do escopo da classe.Os membros protegidos da classe são inacessíveis fora do escopo da classe, exceto a classe derivada imediatamente.
Acessível pela própria turmasimsim
Acessível da classe derivadaNãosim
Acessível de foraNãoNão

Definição de Privado

Os membros da turma declarados como privados só podem ser recuperados dentro da turma. Em outras palavras, os membros declarados na seção privada da classe só podem ser acessados ​​pela função friend e pela função member da classe. Membros privados não podem ser obtidos diretamente para a classe derivada e são inacessíveis fora do escopo da classe.

O programa C ++ mostra o conceito de especificadores de acesso privado.

 #include usando namespace std; classe A {privada: int i; public: void get () {cout <> i; }}; classe B: public A {public: void show () {i ++; cout << "\ n O número digitado após incrementcpp"> # include usando namespace std; class mammal {public: void mammalMethod (void) {cout << "Ele vem na categoria de mamíferos". < 

No programa acima dado, um objeto da classe filha é criado com o nome “ob” e a função de membro da classe pai pode ser acessada através do método de classe filha “marine_mammalMethod”. Embora, o método pai não possa ser acessado diretamente com o objeto “ob”.

Definição de Protegido

Os membros da classe declarados como protegidos em uma classe só podem ser acessados ​​através da função de membro e função amiga da classe. Esses membros protegidos não podem ser acessados ​​fora do escopo de classe, exceto a classe filha (imediatamente derivada dela). Ele serve ao propósito restrito de herança e herda as propriedades de maneira limitada.

O programa C ++ abaixo apresentado ilustra o conceito de especificadores de acesso protegido.

 #include usando namespace std; class account1 {protected: int x, y; // acessível para classe derivada public: void set (int a, int b) {x = a; y = b; } void show () {cout < 

No exemplo acima, a classe filha herda as propriedades da classe base porque os membros de dados são declarados como públicos ou protegidos. Não seria possível se x e y tivessem sido declarados como privados na classe base.

Principais diferenças entre privado e protegido em C ++

  1. A palavra-chave protegida pode ser usada para criar membros de classe que são particulares para sua classe, mas podem ser herdados e usados ​​pela classe derivada. Por outro lado, isso não é possível durante o uso privado, porque os membros privados não podem ser herdados diretamente para a classe derivada.
  2. Quando a classe base é herdada usando o especificador de acesso privado, ela torna todos os membros públicos e protegidos da classe base, os membros privados da classe derivada. Em contrapartida, esse não é o caso em especificadores de acesso protegido.

Conclusão

Privado e protegido são os especificadores de acesso que são usados ​​para definir a visibilidade da classe e seus membros de forma diferente. No entanto, protegido é mais flexível que o privado.

Top