Udostępnij za pośrednictwem


chronione (C++)

protected:
   [member-list]
protected base-class

Uwagi

protected Słowa kluczowego określa dostęp do elementów członkowskich klasy w Lista elementów członkowskich do następnego specyfikatora dostępu (publicznych lub private) lub na końcu definicji klasy.Członkowie klasy zadeklarowane jako protected mogą być używane tylko przez następujące:

  • Funkcje składowe klasy, która pierwotnie zgłoszone tych członków.

  • Znajomi klasy, która pierwotnie zgłoszone tych członków.

  • Klas pochodnych z dostępem publicznym lub chronione klasa, która pierwotnie zgłoszone tych członków.

  • Bezpośrednie klas prywatnie pochodnych, które również posiadają prywatny dostęp do chronionych członków.

Gdy poprzedzającej nazwę klasy bazowej, protected słowa kluczowego Określa, że członkowie publicznych i chronione klasa podstawowa są chronione członków z jej klas pochodnych.

Elementy chronione nie są jako prywatne, jak private członków, które są dostępne tylko dla członków tej klasy, w którym są one zgłoszone, ale nie są one jako publicznych jako publicznych członków, które są dostępne w dowolnej funkcji.

Chronione elementy członkowskie, których zgłaszane są również jako statyczne są dostępne dla żadnych funkcji znajomych lub członków klasy pochodnej.Chronione elementy członkowskie, które nie zostały zgłoszone jako statyczne są dostępne do znajomych i funkcji elementów członkowskich w klasie pochodnej tylko za pośrednictwem wskaźnik, aby odwołać się do lub obiekt klasy pochodnej.

Aby uzyskać pokrewne informacje, zobacz przyjaciel, publicznych, prywatnychi tabeli Członkowskich dostępu w Kontrolowanie dostępu do członków klasy.

/ CLR szczególne

W typach CLR C++ dostępu specyfikatora słowa kluczowe (publicznych, private, i protected) mogą mieć wpływ na widoczność typów i metod w odniesieniu do zespołów.Aby uzyskać więcej informacji, zobacz Typ i widoczności Członkowskie.

[!UWAGA]

Pliki są kompilowane z /LN nie jest narażony na ten problem.W przypadku wszystkich klas zarządzanych (publiczną lub prywatną) będą widoczne.

Przykład

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

Zobacz też

Informacje

Kontrolowanie dostępu do klas członków

Słów kluczowych języka C++