Share via


protected (C++)

Sözdizimi

protected:
   [member-list]
protected base-class

Açıklamalar

protected anahtar sözcüğü, üye listesindeki bir sonraki erişim tanımlayıcısına (public veya ) veya privatesınıf tanımının sonuna kadar sınıf üyelerine erişimi belirtir. olarak protected bildirilen sınıf üyeleri yalnızca aşağıdakiler tarafından kullanılabilir:

  • Başlangıçta bu üyeleri bildiren sınıfın üye işlevleri.

  • Başlangıçta bu üyeleri bildirilen sınıf arkadaşları.

  • Başlangıçta bu üyeleri bildiren sınıftan genel veya korumalı erişimle türetilmiş sınıflar.

  • Korumalı üyelere özel erişimi de olan, doğrudan özel olarak türetilmiş sınıflar.

Temel sınıfın adından önce geldiğinde anahtar sözcüğü, protected temel sınıfın genel ve korumalı üyelerinin türetilmiş sınıflarının korumalı üyeleri olduğunu belirtir.

Korumalı üyeler, yalnızca bildirildikleri sınıfın üyeleri tarafından erişilebilen üyeler kadar private özel değildir, ancak herhangi bir işlevde erişilebilen üyeler kadar public genel değildir.

Olarak da bildirilen static korumalı üyeler, türetilmiş bir sınıfın herhangi bir arkadaşı veya üye işlevi tarafından erişilebilir. olarak static bildirilmeyen korumalı üyeler, türetilmiş bir sınıftaki arkadaşlar ve üye işlevlerine yalnızca türetilmiş sınıfın işaretçisi, başvurusu veya nesnesi aracılığıyla erişilebilir.

İlgili bilgiler için Sınıf Üyelerine Erişimi Denetleme bölümünde arkadaş, genel, özel ve üye erişim tablosuna bakın.

/clr Özel

CLR türlerinde, C++ erişim tanımlayıcı anahtar sözcükleri (public, privateve protected) derlemelerle ilgili türlerin ve yöntemlerin görünürlüğünü etkileyebilir. Daha fazla bilgi için bkz . Üye Erişim Denetimi.

Not

/LN ile derlenen dosyalar bu davranıştan etkilenmez. Bu durumda, tüm yönetilen sınıflar (ortak veya özel) görünür.

END /clr Özel

Örnek

// 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 the derived class
}

Ayrıca bkz.

Sınıf Üyelerine Erişimi Denetleme
Anahtar Sözcükler