您的位置:首页 > 编程语言 > C语言/C++

C++的public,private,protected权限

2013-09-10 14:15 316 查看
转载地址:/article/1948474.html

由于不存在包的概念,因此,C++的protected与java中的protected有所不同,Java中的protected不但子对象可以访问,而且包里的其它地方,也可以显示的通过子对象调用,如

package pack1

public class A{

protected int a;

}

package pack1

public class B{

public static void main(String[] args){

System.out.println(a);

}

}

上述代码是没有问题的,但如果B与A不在同一个包中,则不能访问。因此,在Java中,protected在可见性在与packaged权限类似,而只是在继承性上,没有对包划界,packaged权限不允许子象访问其它包内父对象的包访问权限的属性。

在C++里,protected属性有严格的定义,即只具有垂直的访问权限,只有其自身与其后代可以访问,限一个类的protected属性,只有其内部与子对象内部可以访问,而在其它地方是不可见的,下表列出了C++三种继承对属性的访问情况(缩小访问):

           public属性 protected属性 private属性

public继承 public protected 不可见

protected继承 protected protected 不可见

private继承      private private 不可见
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: