Condividi tramite


protetto (C++)

protected:
   [member-list]
protected base-class

Note

protected la parola chiave specifica l'accesso ai membri della classe in elenco membri fino all'identificatore di accesso successivo (pubblico o private) o la fine della definizione della classe.Membri della classe dichiarati come protected può essere utilizzato solo dai seguenti:

  • Funzioni membro della classe che ha dichiarato tali membri.

  • Friend della classe che ha dichiarato tali membri.

  • Classi derivate con accesso pubblico o protetto dalla classe che ha dichiarato tali membri.

  • Eseguire in modo privato le classi derivate che hanno accesso privato ai membri protetti.

Nel precedente il nome di una classe base, protected la parola chiave specifica che i membri pubblici e protetti della classe base sono membri protetti delle relative classi derivate.

I membri protetti non sono privati come private membri, accessibile solo ai membri della classe in cui vengono dichiarati, ma non sono pubblici come pubblico membri, che sono accessibili in qualsiasi funzione.

Membri protetti che vengono dichiarati come statico accessibile a qualsiasi friend o funzione membro di una classe derivata.Membri protetti che non sono dichiarati come statico accessibile agli elementi friend e le funzioni membro in una classe derivata solo tramite un puntatore a, fare riferimento a, o oggetto classe derivata.

per informazioni correlate, vedere friend, pubblico, privatoe la tabella di accesso al membro in Controllo dell'accesso ai membri della classe.

/clr Specifico

Nei tipi CLR, le parole chiave dell'identificatore di accesso C++ (pubblico, privatee protected) può influire sulla visibilità di tipi e metodi rispetto agli assembly.Per ulteriori informazioni, vedere Visibilità di tipo e membro.

[!NOTA]

file compilati con /LN non sono interessati da questo comportamento.in questo caso, tutte le classi gestite (pubblico o privato) saranno visibili.

Esempio

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

Vedere anche

Riferimenti

Controllo dell'accesso ai membri di classe

Parole chiave C++