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 private
sı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
, private
ve 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin