Aracılığıyla paylaş


Temel sınıflar için erişim belirticileri

Türetilmiş bir sınıf içinde bir temel sınıf üyeleri erişilebilir iki etken Denetim; aynı faktörlerin türetilmiş sınıf devralınan üyeleri için erişim denetimi:

  • Temel sınıfını kullanarak türetilmiş bir sınıf olup olmadığını bildirir ortak belirleyici olarak erişim sınıf kafa (sınıf kafası dilbilgisi bölümünde açıklanan Tanımlayan sınıf türleri).

  • Temel sınıf üyesine erişim nedir.

Aşağıdaki tabloda, bu faktörlerin ve temel sınıf üyesi access belirleme arasındaki etkileşimi gösterir.

Temel sınıf üyesi Access

private

korumalı

Public

Türetme erişim ne olursa olsun her zaman erişilemez

Özel türetme kullanırsanız, türetilmiş sınıf içinde özel

Özel türetme kullanırsanız, türetilmiş sınıf içinde özel

 

Korumalı türetme kullanırsanız, türetilmiş sınıf içinde korumalı

Korumalı türetme kullanırsanız, türetilmiş sınıf içinde korumalı

 

Ortak türetme kullanırsanız, türetilmiş sınıf içinde korumalı

Ortak türetme kullanırsanız, türetilmiş sınıf içinde ortak

Aşağıdaki örnekte bu gösterilmektedir:

// access_specifiers_for_base_classes.cpp
class BaseClass
{
public:
    int PublicFunc();    // Declare a public member.
protected:
    int ProtectedFunc(); // Declare a protected member.
private:
    int PrivateFunc();   // Declare a private member.
};

// Declare two classes derived from BaseClass.
class DerivedClass1 : public BaseClass
{
};

class DerivedClass2 : private BaseClass
{
};

int main()
{
}

De DerivedClass1, üye işlev PublicFunc ortak üyesi olduğu ve ProtectedFunc çünkü korumalı üyesi olduğu BaseClass ortak bir taban sınıftır.PrivateFuncözel olduğu BaseClass, ve türetilmiş tüm sınıflar için erişilemez.

De DerivedClass2, işlevler PublicFunc ve ProtectedFunc özel üye olarak kabul edilir çünkü BaseClass özel bir taban sınıftır.Yine, PrivateFunc için özel BaseClass, ve türetilmiş tüm sınıflar için erişilemez.

Bir temel sınıf erişim belirticisi içermeyen türetilmiþ bir sýnýf bildirebilirsiniz.Böyle bir durumda, türetme türetilmiş sınıf bildirimi kullanıyorsa, özel kabul sınıfı anahtar sözcüğü.Türetme türetilmiş sınıf bildirimi kullanıyorsa, ortak olarak kabul struct anahtar sözcüğü.Örneğin, aşağıdaki kod:

class Derived : Base
...

eşdeğerdir:

class Derived : private Base
...

Benzer şekilde, aşağıdaki kodu:

struct Derived : Base
...

eşdeğerdir:

struct Derived : public Base
...

Bu işlevler veya sınıfları kullanılarak bildirilen sürece türetilmiş sınıfları veya özel erişim sahip olarak bildirilen üyeler işlevleri için erişilebilir değildir unutmayın friend temel sınıf bildiriminde.

A Birliği türü, bir temel sınıf olamaz.

[!NOT]

Özel bir temel sınıf belirtirken, açıkça kullanmasını tavsiye edilir private anahtar sözcüğünü türetilmiþ sýnýf kullanıcıları üye erişim anlamak için.

Ayrıca bkz.

Başvuru

Üye erişim denetimi