O documento discute modificadores de acesso em C++. Ele introduz os modificadores private, que impede acesso externo aos campos de uma classe, e protected, que torna os atributos da classe pai acessíveis para subclasses. Também apresenta o modificador static, que cria variáveis de classe compartilhadas entre objetos ao invés de variáveis de instância individuais.
2. Introdução
• Um dos fundamentos da orientação a objetos é evitar que classes tenham
acesso a um código que não tenha a ver com sua lógica.
•Imagine a classe Corpo, que possui massa, volume e consequentemente
densidade.
• Se alterarmos a massa de um corpo sem alterarmos a densidade, criamos uma
inconsistência dentro da classe.
• Logo esse é um caso em que não podemos permitir livre acesso a esses campos.
4. Modificador Private
•O construtor define o valor da densidade logo na criação do objeto.
•O modificador private impede que qualquer código externo à própria
classe Corpo tenha acesso aos campos de Corpo
•Acesso através de métodos públicos:
float getMassa()
{
return massa;
}
float getVolume()
{
return volume;
}
float getDensidade()
{
return densidade;
}
void SetMassa(float massa)
{
this->massa = massa;
densidade = massa / volume;
}
void SetVolume(float volume)
{
this->volume = volume;
densidade = massa / volume;
}
5. Modificador Protected
• O Modificador de acesso Protected está relacionado à Herança e veremos
mais detalhes sobre ele quando formos estudar Herança.
• Ele torna os atributos da classe pai acessíveis para as classes filhas
6. Static
Podemos distinguir variáveis em dois tipos:
• De instância; cada objeto possui uma cópia distinta desta variável
• De classe, só existe uma por classe.
Qual a palavra reservada para fazer essa distinção?
• Static
• Exemplo: Classe Pais