particular (C++)
private:
[member-list]
private base-class
Comentários
Quando precede uma lista de membros de classe, o private palavra-chave especifica que esses membros são acessíveis somente dentro de funções de membro e amigos da classe.Isso se aplica a todos os membros declarados até o próximo especificador de acesso ou o fim da classe.
Quando precede o nome de uma classe base, o private palavra-chave especifica que os membros do públicos e protegidos da classe base são membros particulares da classe derivada.
Padrão de acesso de membros em uma classe é privada.Padrão de acesso de membros em uma estrutura ou união é público.
Padrão de acesso de uma classe base é privado para classes e público para estruturas.Uniões não podem ter classes base.
Para obter informações relacionadas, consulte amigo, pública, protegidoe a tabela de acesso de membro na Controlando o acesso a membros da classe.
/CLR específicos
Em tipos CLR, o C++ palavras-chave do especificador de acesso (pública, private, e protected) podem afetar a visibilidade de tipos e métodos com relação aos módulos (assemblies).Para obter mais informações, consulte Tipo e a visibilidade de membro.
Observação |
---|
Arquivos compilados com /LN não são afetados por esse comportamento.Nesse caso, todas as classes gerenciadas (públicas ou privadas) ficará visíveis. |
Exemplo
// keyword_private.cpp
class BaseClass {
public:
// privMem accessible from member function
int pubFunc() { return privMem; }
private:
void privMem;
};
class DerivedClass : public BaseClass {
public:
void usePrivate( int i )
{ privMem = i; } // C2248: privMem not accessible
// from derived class
};
class DerivedClass2 : private BaseClass {
public:
// pubFunc() accessible from derived class
int usePublic() { return pubFunc(); }
};
int main() {
BaseClass aBase;
DerivedClass aDerived;
DerivedClass2 aDerived2;
aBase.privMem = 1; // C2248: privMem not accessible
aDerived.privMem = 1; // C2248: privMem not accessible
// in derived class
aDerived2.pubFunc(); // C2247: pubFunc() is private in
// derived class
}