private (C++)

Sintaxe

private:
   [member-list]
private base-class

Comentários

Quando precede uma lista de membros de classe, a palavra-chave private especifica que esses membros podem ser acessados somente de funções de membros e amigos da classe. Isso se aplica a todos os membros declarados até o especificador seguinte do acesso ou ao final da classe.

Para preceder o nome de uma classe base, a palavra-chave private especifica que os membros públicos e protegidos da classe base são membros particulares da classe derivada.

O acesso padrão dos membros em um classe é particular. O acesso padrão dos membros em uma estrutura ou união é público.

O acesso padrão de uma classe base é particular para classes e público para estruturas. Uniões não podem ter classes base.

Para obter informações relacionadas, confira amigo, público, protegido e a tabela de acesso de membros em Como controlar o acesso aos membros da classe.

Específico do /clr

Nos tipos de CLR, as palavras-chave do especificador de acesso de C++ (public, private e protected) podem afetar a visibilidade dos tipos e métodos em relação aos assemblies. Para obter mais informações, confira Controle de acesso a membros.

Observação

Os arquivos compilados com /LN não são afetados por esse comportamento. Nesse caso, todas as classes gerenciadas (públicas ou particulares) serão visíveis.

Específico de END /clr

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
}

Confira também

Controlando o acesso a membros de classe
Palavras-chave