No mundo do C + + biblioteca , produtores e programadores cliente usam as bibliotecas para montar aplicações que muitas vezes são bibliotecas maiores. Bibliotecas consistem de aulas. A classe C + + tem recursos de controle de acesso que definem limites estritos entre o produtor de classe e os programadores do cliente. Estes são necessários para manter os programadores cliente de tocar seções críticas do código e permitir que os produtores de biblioteca para fazer mudanças internas sem notificação. Coisas que você precisa
Livro sobre programação C + +
Show Mais instruções
1
Entenda os especificadores de acesso fornecidos pelo C + + que determinam os limites de classe . Estes são indicados pelas palavras-chave explícitas " público", "privado" e " protegida. " Ao identificar uma função membro com uma dessas palavras-chave , você controla o nível de acesso que a função de membro.
2
Use a palavra-chave " pública" para processar uma definição disponível para qualquer pessoa , incluindo os programadores do cliente.
3
Aplicar a palavra-chave "private" quando você não quer que ninguém além de você mesmo para acessar uma definição de classe. Definições privados só podem ser acessados por outras funções membro que pertencem à classe em questão . Pense em "privado" como um firewall que protege a implementação interna de uma definição de um programador cliente.
4
Declare uma definição "protegido" quando você quer apenas herança de classes para acessar essa definição. Herança de classes ou classes que derivam funcionalidade de uma classe não pode acessar definições particulares, mas eles podem acessar definições marcadas como protegidas.
5
Consulte o exemplo a seguir para obter uma melhor compreensão das etapas 2 a 4 e controle de acesso :
classe CFile {
público :
int Open ( const char * fileName );
privado :
bool FileExists () const;
protegido :
int PixelCount (); } ;
//função privada " FileExists " pode ser usado por funções membro em definição
int CFile :: Open ( const char * filename) {
se (true == CFile :: FileExists ())
jogar ...
}
//classe herdando pode usar a função protegida " PixelCount " da classe base
classe CImageFile : CFile público {
público :
anular SomeFunc () { int x =
CFile :: PixelCount (); }
;
};
//área de execução
int main () {
arquivo CFile ;
File.Open ( referral.txt );
if ( verdadeiros File.Exists == ()) //Tablet erro do compilador int x = file.PixelCount //erro do compilador
}