• C++ 类的继承方式


    类的继承方式


    在C++中,类的继承方式有三种:public、protected、private。

    文字解释:

    public:     私有属性不可继承,其他各种权限保持不变,和父类相同。

    protected:私有属性不可继承,其他属性更改为protected,类内可访问,类外不可访问。

    private:    私有属性不可继承,其他属性更改为private,类内可访问,类外不可访问,不允许子类继承。

    图解:

    代码解释:

    // 面向对象继承的方式.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    using namespace std;
    
    class Father {
    public:
        int a;
    protected:
        int b;
    private:
        int c;
    
    };
    class Son1 :public Father {
    
    public:
        void show() {
            cout << a << endl;            // 公有成员可以继承,属性不变 public
            cout << b << endl;            // 保护成员可以继承,属性不变 protected
            //cout << money << endl;      // 私有成员不可继承,不能访问 
        }
    
    };
    
    class Son2 :protected Father {
    public:
        void show() {
            cout << a << endl;          // 公有属性可以继承,属性改为protected 类内可以访问
            cout << b << endl;          // 保护属性可以继承,属性保持不变,仍然是 protected
            //cout << money << endl;    // 私有成员不可继承
        }
    
    };
    class Son3 :private Father {
    public:
        void show() {
            cout << a << endl;          // 公有属性可以继承,属性改为private,类内可以访问
            cout << b << endl;          // 保护属性可以继承,属性改为private,类内可以访问
            //cout<< c << endl;         // 私有成员不可继承
        }
    
    };
    
    void test01() {
    
        Son1 son1;
        son1.a = 0;   // 公有属性仍为public
        // son1.b        保护属性类外不可访问
        // son1.c        私有属性类外不可访问
                                    
        son1.show();
    }
    void test02() {
        Son2 son2;
        // son2.a    // 公有改保护,类外不可访问
        // son2.b    // 保护不改变,类外不可访问
        // son2.c    // 私有不继承,一直不可访问
        son2.show(); // 公有函数可以打印保护成员
    }
    
    void test03() {
        Son3 son3;
        // 所有非私有成员全部转为私有,外部不可访问
        
        son3.show();
    }
    
    int main()
    {
        
        
    }

     

  • 相关阅读:
    【模拟练习】[一]
    【搜索练习】【二】
    【搜索练习】【一】
    模板整理 (施工中 2017.8.30更新)
    常用STL整理 (施工中 2017.8.11更新)
    剑指Offer 反转链表
    剑指Offer 链表中倒数第k个结点
    剑指Offer 斐波那契数列
    剑指Offer 用两个栈实现队列
    剑指Offer 从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/PPWEI/p/12605690.html
Copyright © 2020-2023  润新知