private (C++)
Синтаксис
private:
[member-list]
private base-class
Замечания
При выполнении списка членов класса ключевое слово указывает, private
что эти члены доступны только из функций-членов и друзей класса. Это применяется ко всем членам, объявленным до следующего описателя доступа или до конца класса.
При указании имени базового класса private
ключевое слово указывает, что общедоступные и защищенные члены базового класса являются частными членами производного класса.
Доступ членов в классе по умолчанию является закрытым. Доступ членов в структуре или объединении по умолчанию является открытым.
Доступ базового класса по умолчанию является закрытым для классов и открытым для структур. Объединения не могут иметь базовые классы.
Дополнительные сведения см. в статье "Друзья", "Общедоступные", "Защищенные" и "Таблица доступа к членам класса" в разделе "Управление доступом к членам класса".
Специально для /clr
В типах СРЕДЫ CLR описатель доступа C++ ключевое слово (public
, private
иprotected
) может повлиять на видимость типов и методов в отношении сборок. Дополнительные сведения см. в разделе "Члены контроль доступа".
Примечание.
Файлы, скомпилированные с помощью /LN , не влияют на это поведение. В этом случае все управляемые классы (открытые или закрытые) будут видны.
КОНЕЦ специально для /clr
Пример
// 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
}
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по