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
}

См. также

Управление доступом к членам классов
Ключевые слова