C++中,类无权限,类成员有三个权限 ,类继承有三个权限,无包的概念。
C++的类本身没有权限,class A, 只要这么写就OK了。
类的成员有三个权限public, protected,private。权限为public的成员,可以在任何情况下访问,在类内,在类外(通常指类的实例化)都可以被访问。权限为private的成员,可以只可以在本类的实现中被访问,即使一个实例化的变量,也可以在相同的类的实现中,访问private的成员。权限为protected的成员,可以在本类的实现中和继承类的实现中被访问。
继承有三个权限,public ,protected ,private,如果class B: access A,
1) B绝对不可以访问A的private成员,但是可以任意访问A的public和protected成员
2)若access为public,则A中的public成员在B中呈现public状态(以下简写为:A public - B public)
A protected - B protected
3)若access为protected,则
A public - B protected
A protected- B protected
4)若access为private,则
A public - B private
A protected -B private
举例:
class A{
public :
A1 ;
protected :
A2 ;
private:
A3 ;
}
class B protected A{
public:
B1(){
A1 ;//可以任意访问A中的public和protected成员
A2 ;
}
}
void main(){
B b ;
b.B1()//允许,因为B1在类B中呈现public状态,public状态可以被任意访问
b.A1()//允许,因为A1在类B中呈现public状态,public状态可以被任意访问
b.A2()// 不允许,因为A1在类B中呈现protected状态,protected状态只能被实现类本身或者它的继承类访问
}