Condividi tramite


private (C++)

Sintassi

private:
   [member-list]
private base-class

Osservazioni:

Quando si precede un elenco di membri della classe, la private parola chiave specifica che tali membri sono accessibili solo da funzioni membro e amici della classe. Quanto detto si applica a tutti i membri dichiarati fino al successivo identificatore di accesso o fino alla fine della classe.

Quando si precede il nome di una classe base, la private parola chiave specifica che i membri pubblici e protetti della classe base sono membri privati della classe derivata.

L'accesso predefinito dei membri in una classe è privato. L'accesso predefinito dei membri in una struttura o in un'unione è pubblico.

L'accesso predefinito di una classe base è privato per le classi e pubblico per le strutture. Le unioni non possono avere classi base.

Per informazioni correlate, vedere friend, public, protected e la tabella di accesso ai membri in Controllo dell'accesso ai membri della classe.

Specifico di /clr

Nei tipi CLR, le parole chiave dell'identificatore di accesso C++ (public, privatee protected) possono influire sulla visibilità dei tipi e dei metodi relativi agli assembly. Per altre informazioni, vedere Controllo di accesso membro.

Nota

I file compilati con /LN non sono interessati da questo comportamento. In questo caso, tutte le classi gestite (sia pubbliche che private) saranno visibili.

Specifico di END /clr

Esempio

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

Vedi anche

Controllo dell'accesso ai membri di classi
Parole chiave