protected (C++)

protected:
   [member-list]
protected base-class

Comentarios

La palabra clave de protected especifica el acceso a los miembros de clase en la lista de miembros hasta el especificador siguiente de acceso (Público o private) o el final de la definición de clase.Los miembros de clase declarados como protected solamente puede ser utilizado por el siguiente:

  • Funciones miembro de clase que declaró originalmente a estos miembros.

  • amigos de la clase que declaró originalmente a estos miembros.

  • Clases derivadas con public o el acceso protected de la clase que declaró originalmente a estos miembros.

  • Ejecute privado las clases derivadas que también tienen acceso privado miembros protegidos.

Al incluir el nombre de una clase base, la palabra clave de protected especifica que el público y miembros protegidos de la clase base son miembros protegidos de sus clases derivadas.

Los miembros protegidos no es tan privados como miembros de private , que sólo se puede tener acceso a los miembros de la clase en la que se declararon, pero no es tan públicos como los miembros de Público , que son accesibles en cualquier función.

Miembros protegidos que también se declaran como Estática es accesible a cualquier función friend o miembro de una clase derivada.Miembros protegidos que no se declaran como Estática es accesible para friends y las funciones miembro en una clase derivada sólo a través de un puntero a, referencia a, o un objeto de la clase derivada.

Para obtener información relacionada, vea confianza, Público, private, y la tabla de acceso a miembros en Controlar el acceso a los miembros de clase.

/clr Específico

En los tipos de CLR, las palabras clave de especificador de acceso de C++ (Público, private, y protected) pueden afectar a la visibilidad de los tipos y métodos con respecto a los ensamblados.Para obtener más información, vea Tipos y miembros Visibility.

[!NOTA]

Los archivos compilados con /LN no afecta a este comportamiento.En este caso, todas las clases administradas (public o private) estará visible.

Ejemplo

// keyword_protected.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class X {
public:
   void setProtMemb( int i ) { m_protMemb = i; }
   void Display() { cout << m_protMemb << endl; }
protected:
   int  m_protMemb;
   void Protfunc() { cout << "\nAccess allowed\n"; }
} x;

class Y : public X {
public:
   void useProtfunc() { Protfunc(); }
} y;

int main() {
   // x.m_protMemb;         error, m_protMemb is protected
   x.setProtMemb( 0 );   // OK, uses public access function
   x.Display();
   y.setProtMemb( 5 );   // OK, uses public access function
   y.Display();
   // x.Protfunc();         error, Protfunc() is protected
   y.useProtfunc();      // OK, uses public access function
                        // in derived class
}

Vea también

Referencia

Controlar el acceso a los miembros de clase

Palabras clave de C++