private (C++)
private:
[member-list]
private base-class
Uwagi
Gdy listę elementów członkowskich klasy poprzedza słowo kluczowe private, określa ono, że te elementy członkowskie są dostępne tylko z funkcji elementów członkowskich i zaprzyjaźnionych elementów klasy.Dotyczy to wszystkich elementów członkowskich zadeklarowanych do następnego specyfikatora dostępu lub do końca klasy.
Gdy nazwę klasy podstawowej poprzedza słowo kluczowe private, określa ono, że publiczne i chronione elementy członkowskie klasy podstawowej są prywatnymi elementami członkowskimi klasy podstawowej.
Domyślnym ustawieniem dostępu elementów członkowskich w klasie jest prywatny.Domyślnym ustawieniem dostępu elementów członkowskich w strukturze lub związku jest publiczny.
Domyślnym ustawieniem dostępu klasy podstawowej jest prywatny dla klas i publiczny dla struktur.Związki nie mogą mieć klas podstawowych.
Aby uzyskać powiązane informacje, zobacz friend, public, protected, a także tabelę dostępu do elementu członkowskiego w Kontrolowanie dostępu do elementów członkowskich klasy.
Specyficzne dla /clr
W typach CLR, słowa kluczowe specyfikatorów dostępu C++ (public, private i protected) mogą wpływać na widoczność typów i metod w odniesieniu do zestawów.Aby uzyskać więcej informacji, zobacz Widoczność typów i członków.
[!UWAGA]
Zachowanie to nie ma wpływu na pliki skompilowane z /LN.W tym przypadku, będą widoczne wszystkie klasy zarządzane (publiczne lub prywatne).
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
}