作用域public,private,protected,以及不写时的区别

转载 2016年08月29日 23:16:09

C++中和JAVA中,publicprivate protected 的用法不完全一样。

C++中:

  • public修饰的成员变量或方法可以被任意其他的类访问。
  • private修饰的成员变量和方法,只能有类本身以及友元函数和友元类来访问。
  •  protected 修饰的成员变量和方法,能被类本身、继承本身的子类、友元函数以及友元类来访问。
  • 默认情况下,在class关键字定义的类中,第一个作用域限定词(publicprivate protected )出现之前的成员变量或方法都是private的。而在用struct关键字定义的类中,第一个限定词出现之前的成员变量和方法都是public的。两个作用域限定词之间的成员变量和方法都是被前一个限定词限制的。如

                                                           public: int a;

                                                                      int b;

                                                           private double d;

        以上例子中,int b;相当于public int b;

  • 继承类(派生类)可以通过继承类对象(此处指访问自己内部的 protected 成员,不能访问其他继承类对象内的成员)访问基类中的 protected 成员,但是不可以通过基类对象访问基类中的 protected 成员。
  • 不能通过类的实例(对象)访问类的 protected 成员。
  • 友元关系时不可继承的。
  • private继承将基类中的所有成员都变成private

       protected 继承将基类中的public成员变成 protected ,其他成员不变。

        public继承保持基类中的限定条件不变。

JAVA中:

  • private修饰的成员变量和函数只能在类本身和内部类中被访问。
  • protected 修饰的成员变量和函数能被类本身、子类及同一个包中的类访问。
  • public修饰的成员变量和函数可以被类、子类、同一个包中的类以及任意其他类访问。
  • 默认情况(不写)下,属于一种包访问,即能被类本身以及同一个包中的类访问。
  • 下面这个表能清楚的说明java中作用域操作符的作用:

                     作用域       当前类    同一package      子孙类     其他package
                      public            √                √                   √                √

                      protected      √                √                    √                ×

                      friendly         √                 √                    ×                ×

                      private          √                 ×                    ×                ×

相关文章推荐

public,private,protected,以及不写时的区别

作用域public,private,protected,以及不写时的区别 这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。不使用...
  • singit
  • singit
  • 2015-08-17 10:36
  • 4088

java作用域public protected private,以及不写时的区别

下面我简单的画一张表来说明问题: modifiers 作用域(可见) 当前类 同包 子孙类 其他包 public √  √  √   √ pro...

java作用域public ,private ,protected 及不写时的区别

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 2、private:private表示私有,私有的意思就是除了class自己之外,任何人...

java作用域public ,private ,protected 及不写时的区别

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友...

Objective-C中@private、@protected、@public 解析

Objective-C中,类的实例化变量的范围有@private、@protected、@public。他们代表的意思和C++中相同,只是前面添加了一个@符号。下面介绍一下他们代表的范围: ...

Java【public、private、protected区别】-访问权限

public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如: public   class   ...

快速理解类的访问控制(public,protected,private)

接触过面向对象编程的朋友们都知道类中的访问控制符无非有三个,public, protected, private。 理解他就先从期望他达到的效果先说吧   Public: 使成员对于整个程序内(...

public,protected,private

一、public,protected,private(1)public:公有成员/继承.类外可以直接访问(对象可以访问类的公有成员)。(2)protected:保护成员/继承protected成员的特...

WebSphere应用服务器类加载机制实践

【IT168 专稿】    本文将会从Java平台本身的类加载机制谈起,然后向读者展现WebSphere Application Server(WAS)中如何应用扩展Java本身的类加载机制。本文还将...

C++中的private protected public区别

当private,public,protected单纯的作为一个类中的成员权限设置时: private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问.  pr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)