private (C++)

Sintaxis

private:
   [member-list]
private base-class

Comentarios

Cuando precede a una lista de miembros de clase, la palabra clave private especifica que esos miembros son accesibles solo desde funciones miembro y friend de la clase. Esto se aplica a todos los miembros declarados hasta el especificador de acceso siguiente o el final de la clase.

Cuando precede al nombre de una clase base, la palabra clave private especifica que los miembros públicos y protegidos de la clase base son miembros privados de la clase derivada.

El acceso predeterminado de miembros de una clase es privado. El acceso predeterminado de miembros de una estructura o unión es público.

El acceso predeterminado de una clase base es privado para las clases y público para las estructuras. Las uniones no pueden tener clases base.

Para obtener información relacionada, consulte friend, public, protected y la tabla de acceso a miembros en Controlar el acceso a los miembros de clase.

Específicos de /clr

En los tipos de CLR, las palabras clave del especificador de acceso de C++ (public, private y protected) pueden afectar a la visibilidad de los tipos y los métodos con respecto a los ensamblados. Para obtener más información, consulte Control de acceso a miembros.

Nota:

Los archivos compilados con /LN no se ven afectados por este comportamiento. En este caso, todas las clases administradas (ya sean públicas o privadas) estarán visibles.

Específicos de END /clr

Ejemplo

// 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
}

Consulte también

Controlar el acceso a los miembros de clase
Palabras clave