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;
        }
    }
  • 相关阅读:
    算法导论13:双向循环链表 2016.1.13
    ansible
    mariadb集群配置(主从和多主)
    连接查询,视图,事物,索引,外键(第四章)
    MariaDB第三章(select)
    mariadb第二章-增删改
    mariadb(第一章)
    keepalived概述
    git操作
    django后台admin管理布局
  • 原文地址:https://www.cnblogs.com/cutepig/p/1956808.html
Copyright © 2011-2022 走看看