Qual é a diferença entre membros privados e protegidos das classes C ++

Qual é a diferença entre membros privados e protegidos das classes C ++
C ++ é uma linguagem de programação orientada a objetos (OOP) que fornece um mecanismo para encapsular dados e funções em uma única entidade chamada Classe. Uma das características essenciais da classe é a capacidade de especificar o nível de acesso para seus membros. Em programação orientada a objetos, Especificadores de acesso são usados ​​para controlar a visibilidade e a acessibilidade dos campos e métodos de uma classe. Protegido, público, e privado Os níveis de acesso são os três tipos básicos de níveis de acesso em c++.

Neste artigo, discutiremos a diferença entre os dois principais especificador de acessos, privado e protegido membros de uma classe C ++.

Especificador de acesso privado

Membros particulares são declarados usando a palavra -chave 'privado'. O Especificador de acesso privado Limita o acesso aos alunos da classe apenas à própria classe. O código fora da classe não pode acessar ou alterar um membro privado. Isso significa que apenas os métodos declarados na classe podem acessar e operar no membros particulares, Nem mesmo classes derivadas podem acessar membros particulares. Um uso comum de membros particulares é garantir a operação correta de uma classe. Membros particulares são usados ​​para encapsular os dados da classe e fornecer um nível de abstração aos usuários da classe.

#incluir
usando namespace std;
Classe Player
privado:
nome da string;
Int Age;
público:
Void GetPlayer ()

cout << "Enter name: ";
Cin >> nome;
cout << "Enter age: ";
Cin >> idade;

Void Showplayer ()

cout << "Name: " << name << endl;
cout << "Age: " << age << endl;

;
int main ()

jogador pl;
pl.getPlayer ();
pl.showplayer ();
retornar 0;

No código acima, usamos os métodos de membro público getPlayer () e showplayer () Para acessar os dois privado membros' nome e idade. O getPlayer () A função obtém a entrada dos usuários e a exibe na tela via showplayer () função.

Saída

Especificador de acesso protegido

Membros protegidos de uma classe pode ser acessada pelas classes derivadas e pelas funções membros da própria classe. Membros protegidos são usados ​​para fornecer um nível de acesso às classes derivadas sem expor os detalhes da implementação ao mundo exterior. Membros protegidos são declarados usando a palavra -chave 'protegido' e a Cólon (:) personagem. Membros protegidos Permita que uma classe seja estendida e modificada, sem comprometer sua integridade. Uma classe derivada pode usar membros protegidos refinar ou personalizar o comportamento de uma classe base.

Aqui está um exemplo de classe com membros protegidos:

#incluir
usando namespace std;
Classe Player
privado:
nome da string;
Int Age;
protegido:
objetivos int;
público:
Void GetPlayer ()

nome cout;
idade da idade;

Void Showplayer ()

cout << "Name: " << name << endl;
cout << "Age: " << age << endl;

;
Classe Player1: Public Player
privado:
país de cordas;
público:
void set_goals (int g)

objetivos = g;

Void GetPlayer1 ()

getPlayer ();
país cout;

Void Showplayer1 ()

cout << "goals: " << goals << endl;
showplayer ();
cout << "Country: " << country << endl;

;
int main ()

jogador1 pl;
pl.set_goals (101);
pl.getPlayer1 ();
pl.showplayer1 ();
retornar 0;

O jogador A classe compreende dois membros particulares, nome e idade, um protegido membro, metas, e privado Os membros são utilizados dentro do público Funções de membros, getPlayer () e showplayer (). Existem duas classes, jogador e jogador1, ambos são classes base. Um privado membro, país, e três público Métodos de membros compõem o jogador1 aula. Set_goals () é usado para mudar o membro protegido metas' valor. getPlayer1 () chama o getPlayer () função de membro do jogador aula enquanto recupera a entrada para o país. Semelhante a isso, showplayer1 () chama o showplayer () função de membro e imprime o metas e país valores.

Saída

Diferença entre membros privados e protegidos das classes C ++

Aqui estão listados algumas das principais diferenças entre Privado e Protegido membros das classes C ++.

1: escopo e funcionalidade

Ao considerar o uso de especificadores de acesso, é crucial pensar cuidadosamente sobre o escopo e funcionalidade do programa. A Especificador de acesso privado fornece o nível mais alto de segurança e evita acesso não intencional a variáveis ​​e métodos. Por outro lado, um Especificador de acesso protegido Oferece uma gama mais extensa de acessibilidade e flexibilidade, o que é essencial ao planejar as classes derivadas de uma classe base.

2: Nível de acesso

A principal diferença entre privado e membros protegidos é o nível de acesso que eles fornecem. Protegido Os membros podem ser acessíveis pelas classes derivadas da classe e funções membros, mas privado Os membros só podem ser obtidos pelas funções membros da classe.

3: Encapsulamento da aula

Outra diferença crucial entre privado e protegido Os membros são seu papel na manutenção do encapsulamento da classe. Para isolar os dados e fornecer aos usuários da classe algum nível de abstração, privado Os membros são empregados. Protegido Os membros são empregados para gerenciar a estrutura de herança e fornecer acesso aos membros da classe base por classes derivadas.

Pensamentos finais

Privado e membros protegidos são os dois níveis de acesso essenciais na classe C ++. O privado Specificador de acesso torna os membros da classe inacessíveis a todos os usuários externos e é usado para manter as informações privado dentro da classe. Por outro lado, um protegido O especificador de acesso permite o acesso aos membros da classe apenas por classes derivadas, é usado para fornecer funcionalidade de classe base e permite modificação sem alterar o comportamento da classe base. O nível de acesso dos membros da classe desempenha um papel crucial na manutenção do encapsulamento da classe e no fornecimento de um nível de acesso aos usuários da classe.