Поделиться через


protected (C++)

protected:
   [member-list]
protected base-class

Заметки

protected ключевое слово определяет доступ к членам класса в member-list описатель доступа (до следующегоОткрытый OR private) или конец определения класса.Члены классов, объявленные как protected может использоваться только следующим образом:

  • Функции-члены класса, который первоначально объявлен эти элементы.

  • Друзей класса, который первоначально объявлен эти элементы.

  • Классы, производные с открытым доступом или защищенным из класса, который первоначально объявлен эти элементы.

  • Направьте private производные классы, которые также имеют закрытый доступ к защищенным членам.

Имя базового класса, предшествующие protected ключевое слово, указывающее, что открытые и защищенные члены базового класса защищенные члены его производных классов.

Защищенные члены как не являются закрытыми как private члены, которые доступны только к членам класса, в котором они объявлены, но они не являются открытыми как Открытый члены, доступные в любой функции.

Защищенные члены, которые также объявлять как Статический доступны любому другу или функции-члену производного класса.Защищенные члены, не объявленные как Статический доступны другам и функции-членам в производном классе только через указатель на ссылку или объект производного класса.

Дополнительные сведения см. в разделе friend" Открытый" privateи доступа к членам в таблице Управление доступом к членам класса.

Конкретные /clr

В типах среды CLR, ключевые слова доступа (описателя C++Открытый" privateи protected) может повлиять на видимость типов и методов в отношении сборок.Дополнительные сведения см. в разделе Видимость типов и членов.

ПримечаниеПримечание

Файлы компилированные с /LN не применяется к данной реакцией на событие.В этом случае все управляемые классы (или открытым или закрытым) будут видимы.

Пример

// keyword_protected.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class X {
public:
   void setProtMemb( int i ) { m_protMemb = i; }
   void Display() { cout << m_protMemb << endl; }
protected:
   int  m_protMemb;
   void Protfunc() { cout << "\nAccess allowed\n"; }
} x;

class Y : public X {
public:
   void useProtfunc() { Protfunc(); }
} y;

int main() {
   // x.m_protMemb;         error, m_protMemb is protected
   x.setProtMemb( 0 );   // OK, uses public access function
   x.Display();
   y.setProtMemb( 5 );   // OK, uses public access function
   y.Display();
   // x.Protfunc();         error, Protfunc() is protected
   y.useProtfunc();      // OK, uses public access function
                        // in derived class
}

См. также

Ссылки

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

Ключевые слова C++