private (C++)

Składnia

private:
   [member-list]
private base-class

Uwagi

Podczas poprzedzania listy składowych klasy słowo kluczowe określa, private że te składowe są dostępne tylko z funkcji składowych i znajomych klasy. Dotyczy to wszystkich składowych zadeklarowanych do następnego specyfikatora dostępu lub końca klasy.

W przypadku poprzedzania nazwy klasy bazowej słowo kluczowe określa, private że publiczne i chronione elementy członkowskie klasy bazowej są prywatnymi elementami członkowskimi klasy pochodnej.

Domyślny dostęp do składowych w klasie jest prywatny. Domyślny dostęp do elementów członkowskich w strukturze lub unii jest publiczny.

Domyślny dostęp do klasy bazowej jest prywatny dla klas i publicznych dla struktur. Związki nie mogą mieć klas bazowych.

Aby uzyskać powiązane informacje, zobacz temat friend, public, protected i the member-access table w temacie Kontrolowanie dostępu do składowych klasy.

Specyficzne dla /clr

W typach CLR słowa kluczowe specyfikatora dostępu języka C++ (public, privatei protected) mogą mieć wpływ na widoczność typów i metod w odniesieniu do zestawów. Aby uzyskać więcej informacji, zobacz Kontrola dostępu do składowych.

Uwaga

Takie zachowanie nie ma wpływu na pliki skompilowane za pomocą /LN . W tym przypadku, widoczne będą wszystkie klasy zarządzane (publiczne lub prywatne).

KONIEC specyficzne dla /clr

Przykład

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

Zobacz też

Kontrolowanie dostępu do składowych klas
Słowa kluczowe