【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

C++继承:公有,私有,保护

原创 2016年06月01日 16:28:50

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。

公有继承(public)

公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类所访问。

私有继承(private)

私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。

保护继承(protected)

保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。

public protected private
public继承 public protected 不可见
private继承 private private 不可见
protected继承 protected protected 不可见

class A
    {
    public:
        int publicA;
    protected:
        int protectedA;
    private:
        int privateA;
    };

    class B:public A //基类A的派生类B(public继承)
    {
    public:
        void funct()
        {
            int b;
            b=publicA;    //ok:基类的public成员在派生类中为public成员
            b=protectedA; //ok:基类的protected成员在派生类中为protected成员
            //b=privateA;   //error:基类的private成员在派生类中是不可见的

        }
    };

    class C:private A
    {
    public:
        void funct()
        {
            int c;
            c=publicA;    //ok:基类的public成员在派生类中为private成员
            c=protectedA; //ok:基类的protected成员在派生类中为private成员
            //c=privateA;   //error:基类的private成员在派生类中是不可见的
        }
    };

    class D:public C
    {
    public:
        void funct()
        {
            int d;
            //d=publicA;    //error:类C由类A private继承得到,所以publicA已经成为C的private成员
            //d=protectedA; //error:类C由类A private继承得到,所以protectedA已经成为C的private成员
            //d=privateA;   //error:基类的private成员在派生类中是不可见的
        }
    };
int a;
    B objB;

    a = objB.publicA;
    //a = objB.protectedA;//error:基类的保护成员在派生类中为保护成员,对对象不可见
    //a = objB.privateA;//error:基类中私有成员在派生类中是不可见的,对对象不可见

    C objC;
    //a=objC.publicA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见
    //a=objC.protectedA; //error:基类的保护成员在派生类中为私有成员,对对象不可见
    //a=objC.privateA;    //error:基类的公共成员在派生类中为私有成员,对对象不可见
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

从零开始学C++之继承(一):公有/私有/保护继承、overload/overwrite/override之间的区别

一、继承 C++很重要的一个特征就是代码重用。在C语言中重用代码的方式就是拷贝代码、修改代码。C++可以用继承或组合的方式来重用。通过组合或继承现有的的类来创建新类,而不是重新创建它们。 继承是使...

关于C++中公有继承、私有继承、保护继承的讨论

简单明了的理由,老生常谈但是没真正解决的问题,想搞清楚这个问题。

C++继承:共有,私有,保护

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。 <p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; font-famil
  • mmdev
  • mmdev
  • 2012-02-09 15:09
  • 353

C++继承:公有,私有,保护

转载自:csqlwy 好记性不如烂笔头–温故而知新的博客 C继承公有私有保护C++继承:公有,私有,保护公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种...

C++学习日记18——C++继承: 公有public, 私有private, 保护protect

本篇文章介绍C++的继承特性

关于C++继承的一些遗忘细节

这两天偶尔翻看一本C++的书籍时,看到一个继承的知识点竟有点陌生的感觉。也许是之前恰好没接触过,也许是太久没接触罢了,现在究竟是忘记了。应该记下来,以作备忘,顺便罗嗦一下继承的概念,嗯嗯。 那就是C++中的访问声明。 众所周知,C++有三种继承方式,公有继承,保护继承,私有继承。公有继承,基类的公有和保护成员在派生类的性质不变。保护继承,基类的公有和保护成员在派生类均变成保护成员。保护成员是专为继承机制而设的,使其在派生类中可见,类外不可见。私有继承,基类的所有成员在派生类均变成私有成员。 问题在于,当我用某种继承方式时,却想把基类的

C++ 私有、保护、公有继承

一、公有(Pulic)继承 “继承”是类的重要特性。A类继承B类,我们称B类为“基类”,也称为“父类”,A类则相应地被称为“派生类”或“子类”。A类继承了B类之后,A类就具有了B类的部分成员。那么,...

C++继承:公有,私有,保护(转)

原文地址:[url]http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html[/url] 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。 2. 私有继承(private) 私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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