zoukankan      html  css  js  c++  java
  • C++: public/protected/private inheritance

    class A
    {
        public:
            int a;
        private:
            int b;
        protected:
            int c;
    };

    //
    // public inheritance:
    //        - data access type not change
    //        - B cannot access  A's private member
    //
    class B: public A
    {
        public:
        void test()
        {
            a = 1;
            //b = 1;    //Fail
            c = 1;
        }
    };

    //
    // protected inheritance:
    //        - data access type: public -> protected
    //        - C cannot access  A's private member
    //
    class C: protected A
    {
        public:
        void test()
        {
            a = 1;
            //b = 1;    //Fail
            c = 1;
        }
    };

    //
    // private inheritance:
    //        - data access type: public , protected -> private
    //        - D cannot access  A's private member
    //
    class D: private A
    {
    public:
        void test()
        {
            a = 1;
            //b = 1;    //Fail
            c = 1;
        }
    };

    class E: public C
    {
        public:
        void test()
        {
            a = 1;
            //b = 1;
            c = 1;
        }
    };

    class F: public D
    {
        void test()
        {
            //a = 1;
            //b = 1;
            //c = 1;
        }
    };

    int main()
    {
        {
            B b;
            b.test();
            b.a = 1;
            //b.b = 1;
            //b.c = 1;
        }

        {
            C b;
            b.test();
            //b.a = 1;
            //b.b = 1;
            //b.c = 1;
        }

        {
            D b;
            b.test();
            //b.a = 1;
            //b.b = 1;
            //b.c = 1;
        }

        {
            E b;
            b.test();
            //b.a = 1;
            //b.b = 1;
            //b.c = 1;
        }
    }
  • 相关阅读:
    第十五讲 实例模式
    第十四讲 实例模式
    将博客搬至CSDN
    CSU 1616: Heaps(区间DP)
    hdu 1281棋盘游戏(二分匹配)
    hdu 1042 N!(大数的阶乘)
    hdu 3371 Connect the Cities (最小生成树Prim)
    hdu 4502吉哥系列故事——临时工计划 (简单DP)
    hdu1230火星A+B (大数题)
    hdu1301 Jungle Roads (Prim)
  • 原文地址:https://www.cnblogs.com/cutepig/p/1956808.html
Copyright © 2011-2022 走看看