保护继承类似私有继承。然而,从派生类的类仍然可以访问public和protected成员直接。公共(在类的东西)不。
摘要
这个访问说明符,继承类型的方式,和派生类的相互作用会导致大量的混乱。试图澄清的东西尽可能的:
首先,基类集合的访问说明符。基类可以访问它自己的成员。访问说明符仅影响外人和派生类可以访问这些成员。
第二,派生类可以访问基类成员基于父访问说明符。这样的派生类继承成员的访问不受继承法!
最后,派生类可以改变接入类型继承的成员根据继承法。这并不影响派生类自己的成员,它有自己的访问说明符。它只影响无论局外人和来自派生类的类可以访问这些继承的成员。
最后一个例子:
1
2
3
4
5
6
7
8
9
|
class
Base
{
public
:
int
m_nPublic;
private
:
int
m_nPrivate;
protected
:
int
m_nProtected;
};
|
1
2
3
4
5
6
7
8
9
|
class
D2:
private
Base
{
public
:
int
m_nPublic2;
private
:
int
m_nPrivate2;
protected
:
int
m_nProtected2;
}
|
1
2
3
4
5
6
7
8
9
|
class
D3:
public
D2
{
public
:
int
m_nPublic3;
private
:
int
m_nPrivate3;
protected
:
int
m_nProtected3;
};
|