Neste artigo, discutiremos a diferença entre os dois principais especificador de acesso s, privado e protegido membros de uma classe C++.
Especificador de Acesso Privado
membros privados são declarados usando a palavra-chave ‘ privado '. O especificador de acesso privado limita o acesso aos membros da classe apenas para a 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 na membros privados , nem mesmo classes derivadas podem acessar membros privados . Um uso comum de membros privados é garantir o correto funcionamento de uma classe. membros privados são usados para encapsular os dados da classe e fornecer um nível de abstração aos usuários da classe.
#include
usando namespace std ;
aula jogador {
privado :
nome da string ;
int idade ;
público :
vazio getPlayer ( )
{
cout << 'Insira o nome: ' ;
comendo >> nome ;
cout << 'Digite a idade: ' ;
comendo >> idade ;
}
vazio showPlayer ( )
{
cout << 'Nome: ' << nome << fim ;
cout << 'Idade: ' << idade << fim ;
}
} ;
int principal ( )
{
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 por meio de showPlayer() função.
Saída
Especificador de Acesso Protegido
membros protegidos de uma classe pode ser acessado tanto pelas classes derivadas quanto pelas funções membro da própria classe. membros protegidos são usados para fornecer um nível de acesso às classes derivadas sem expor os detalhes de implementação para o mundo externo. membros protegidos são declarados usando a palavra-chave ‘ protegido ' e a dois pontos (:) personagem. membros protegidos permitem que uma classe seja estendida e modificada, sem comprometer sua integridade. Uma classe derivada pode usar membros protegidos para refinar ou personalizar o comportamento de uma classe base.
Aqui está um exemplo de uma classe com membros protegidos :
#include
usando namespace std;
jogador de classe {
privado:
nome da cadeia;
idade int;
protegido:
objetivos int;
público:
void getPlayer ( )
{
cout <> nome;
cout <> idade;
}
void showPlayer ( )
{
cout << 'Nome: ' << nome << endl;
cout << 'Idade: ' << idade << endl;
}
} ;
class player1: jogador público {
privado:
país da corda;
público:
void set_goals ( int g )
{
metas = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> país;
}
void showPlayer1 ( )
{
cout << 'metas: ' << metas << endl;
showPlayer ( ) ;
cout << 'País: ' << país << endl;
}
} ;
int principal ( )
{
jogador1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;
retornar 0 ;
}
O jogador classe compreende dois membros privados , nome e idade , um protegido membro, metas , e privado membros são utilizados dentro do público funções de membro, getPlayer() e showPlayer() . Existem duas classes, jogador e jogador1 , sendo que ambas são classes base. Um privado membro, país , e três público métodos membros compõem o jogador1 aula. Set_goals() é usado para alterar o membro protegido metas' valor. getPlayer1() chama o getPlayer() função de membro do jogador classe enquanto recupera adicionalmente a entrada para o país. Semelhante a este, 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 de classes C++
Aqui estão listadas algumas das principais diferenças entre Privado e Protegido membros de 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 mais alto nível 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 ampla de acessibilidade e flexibilidade, o que é essencial ao planejar herdar 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 tanto pelas classes derivadas da classe quanto pelas funções membro, mas privado Os membros só podem ser obtidos pelas funções de membro da classe.
3: Encapsulamento da classe
Outra diferença crucial entre privado e protegido membros é 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 membros estã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 O especificador 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. Em contraste, um protegido o especificador de acesso permite acesso a membros de 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.