public,private,protected

转载 2016年05月30日 16:06:33

转自 http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html


#include<iostream>

using namespace std;

//////////////////////////////////////////////////////////////////////////

class A       //父类

{

private:

    int privatedateA;

protected:

    int protecteddateA;

public:

    int publicdateA;

};

//////////////////////////////////////////////////////////////////////////

class B :public A      //基类A的派生类B(共有继承)

{

public:

    void funct()

    {

        int b;

        b=privatedateA;   //error:基类中私有成员在派生类中是不可见的

        b=protecteddateA; //ok:基类的保护成员在派生类中为保护成员

        b=publicdateA;    //ok:基类的公共成员在派生类中为公共成员

    }

};

//////////////////////////////////////////////////////////////////////////

class C :private A  //基类A的派生类C(私有继承)

{

public:

    void funct()

    {

        int c;

        c=privatedateA;    //error:基类中私有成员在派生类中是不可见的

        c=protecteddateA;  //ok:基类的保护成员在派生类中为私有成员

        c=publicdateA;     //ok:基类的公共成员在派生类中为私有成员

    }

};

//////////////////////////////////////////////////////////////////////////

class D :protected A   //基类A的派生类D(保护继承)

{

public:

    void funct()

    {

        int d;

        d=privatedateA;   //error:基类中私有成员在派生类中是不可见的

        d=protecteddateA; //ok:基类的保护成员在派生类中为保护成员

        d=publicdateA;    //ok:基类的公共成员在派生类中为保护成员

    }

};

//////////////////////////////////////////////////////////////////////////

int main()

{

    int a; 



    B objB;

    a=objB.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见

    a=objB.protecteddateA; //error:基类的保护成员在派生类中为保护成员,对对象不可见

    a=objB.publicdateA;    //ok:基类的公共成员在派生类中为公共成员,对对象可见



    C objC;

    a=objC.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见

    a=objC.protecteddateA; //error:基类的保护成员在派生类中为私有成员,对对象不可见

    a=objC.publicdateA;    //error:基类的公共成员在派生类中为私有成员,对对象不可见



    D objD;

    a=objD.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见

    a=objD.protecteddateA; //error:基类的保护成员在派生类中为保护成员,对对象不可见

    a=objD.publicdateA;    //error:基类的公共成员在派生类中为保护成员,对对象不可见



    return 0;

}
举报

相关文章推荐

delphi的Public.Private.Protected.Published作用域

delphi的Public.Private.Protected.Published作用域关于Class里的成员: 1.Public, 2.Private, 3.Protected, 4.Pub...

访问修饰符(public,private,protected,internal,sealed,abstract)

为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

C++ 类访问控制public/private/protected探讨

摘要:本文是从饮水思源BBS C/C++版上一篇帖子引发的思考。当时看到帖子,突然觉得平时见惯了的,在这里似乎变得陌生了,究竟访问控制符怎样起作用,怎样使用,该怎样理解,本文试图给出讨论。 原帖...

Objective-C 中public、protected、private 的使用

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

C++中的三种继承public,protected,private

三种访问权限public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问三种继承方式public 继承 protect 继承 ...

OC 中 @private @protected @public @package 的含义

Brief Directive Meaning @private 成员只能在当前类内部可以访问,在类实现部分定义的成员变量相当于默认使用了这种访问权限。 @protected 成...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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