private (C++)private (C++)

SintaxisSyntax

private:
   [member-list]
private base-class

ObservacionesRemarks

Cuando precede a una lista de miembros de clase, la private palabra clave especifica que esos miembros son accesibles solo desde las funciones miembro y amigos de la clase.When preceding a list of class members, the private keyword specifies that those members are accessible only from member functions and friends of the class. Esto se aplica a todos los miembros declarados hasta el especificador de acceso siguiente o el final de la clase.This applies to all members declared up to the next access specifier or the end of the class.

Al anteponer el nombre de una clase base, la private palabra clave especifica que los miembros públicos y protegidos de la clase base son miembros privados de la clase derivada.When preceding the name of a base class, the private keyword specifies that the public and protected members of the base class are private members of the derived class.

El acceso predeterminado de miembros de una clase es privado.Default access of members in a class is private. El acceso predeterminado de miembros de una estructura o unión es público.Default access of members in a structure or union is public.

El acceso predeterminado de una clase base es privado para las clases y público para las estructuras.Default access of a base class is private for classes and public for structures. Las uniones no pueden tener clases base.Unions cannot have base classes.

Para obtener información relacionada, vea Friend, Public, Protectedy la tabla de acceso a miembros en controlar el acceso a los miembros de clase.For related information, see friend, public, protected, and the member-access table in Controlling Access to Class Members.

Específicos de /clr/clr Specific

En los tipos CLR, las palabras clave del especificador de acceso de C++ ( public , private y protected ) pueden afectar a la visibilidad de los tipos y métodos con respecto a los ensamblados.In CLR types, the C++ access specifier keywords (public, private, and protected) can affect the visibility of types and methods with regard to assemblies. Para obtener más información, vea Access Control miembro.For more information, see Member Access Control.

Nota

Los archivos compilados con /LN no se ven afectados por este comportamiento.Files compiled with /LN are not affected by this behavior. En este caso, todas las clases administradas (ya sean públicas o privadas) estarán visibles.In this case, all managed classes (either public or private) will be visible.

Específicos de END /clrEND /clr Specific

EjemploExample

// 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énSee also

Controlar el acceso a los miembros de claseControlling Access to Class Members
Palabras claveKeywords