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
, private
i 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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla