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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de