zel*_*ler 39
Java:
默认情况下,类可见性是包私有的,即仅对同一包中的类可见.
C++:
该类没有像Java那样定义的可见性.如果将它们包含在编译单元中,它们是可见的.
Ray*_*oal 19
在Java中,顶级类是公共类或非公共类.没有"私人".您只能使用public关键字或将其关闭.如果您将其关闭,则它是非公开的,即仅对同一包中的其他类可见.
一个嵌套类,也就是另一个类的内部类,可以公开,包私有,保护,或私人的,就像任何其他类别的成员.默认值(即没有修饰符的那个)是包私有的,仅对同一包中的类可见.
编辑:忘了C++答案,所以看看(和upvote)@ zeller的答案.:)
old*_*inb 13
根据JLS的§6.6.1,
如果顶级类或接口类型未声明为public,则只能从声明它的包中访问它.
因此,Java类默认是package-private.
但是,这不适用于C++.一个类缺乏可见性 - 只有其成员才能拥有访问控制权.有关成员访问控制的信息,请参阅C++ 11标准的第11节.这是1的摘录......
一个班级的成员可以
private; 也就是说,它的名称只能由声明它的类的成员和朋友使用.protected; 也就是说,它的名称只能由声明它的类的成员和朋友,从该类派生的类以及他们的朋友使用(见11.4).public; 也就是说,它的名称可以在没有访问限制的任何地方使用.