Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java和C+中,默认情况下是私有类还是公共类+;? 爪哇和C++中的类是私有的还是公共的?< /P> < UL>_Java_C++_Class Visibility - Fatal编程技术网

在Java和C+中,默认情况下是私有类还是公共类+;? 爪哇和C++中的类是私有的还是公共的?< /P> < UL>

在Java和C+中,默认情况下是私有类还是公共类+;? 爪哇和C++中的类是私有的还是公共的?< /P> < UL>,java,c++,class-visibility,Java,C++,Class Visibility,Java: 默认情况下,类可见性是包私有的,即仅对同一包中的类可见 C++: 该类没有像Java中那样定义的可见性。如果将它们包含到编译单元中,则它们是可见的 在Java中,顶级类可以是公共类,也可以是非公共类。没有“私人的”。您只能使用public关键字或将其禁用。如果不使用它,则它是非公共的,即仅对同一包中的其他类可见 嵌套类,即另一个类中的类,可以像任何其他类成员一样公开、包私有、保护或私有。默认值(即不带修饰符的值)是包私有的,仅对同一包中的类可见 编辑:忘记C++答案,所以请参阅(和投

Java

默认情况下,类可见性是包私有的,即仅对同一包中的类可见

  • C++

    该类没有像Java中那样定义的可见性。如果将它们包含到编译单元中,则它们是可见的

  • 在Java中,顶级类可以是公共类,也可以是非公共类。没有“私人的”。您只能使用public关键字或将其禁用。如果不使用它,则它是非公共的,即仅对同一包中的其他类可见

    嵌套类,即另一个类中的类,可以像任何其他类成员一样公开、包私有、保护或私有。默认值(即不带修饰符的值)是包私有的,仅对同一包中的类可见

    编辑:忘记C++答案,所以请参阅(和投票)@泽勒的答案。p> 根据

    如果顶级类或接口类型未声明为公共,则只能从声明它的包中访问它

    因此,Java类在默认情况下是包私有的

    <>这不适用于C++。类缺乏可见性--只有其成员可以拥有访问控制。有关成员访问控制的信息,请参见C++11标准的§11。这是»1»的摘录

    类的成员可以是

    • 私人
      ;也就是说,它的名称只能由声明它的类的成员和朋友使用
    • 受保护
      ;也就是说,它的名称只能由它所在的类的成员和朋友使用 由该类派生的类及其朋友声明(见11.4)
    • 公共
      ;也就是说,它的名称可以在任何地方使用,而不受访问限制

    此外,在C++类中,默认成员访问是“代码>私有< /代码>,而对于<代码>结构> <代码>是公开的。