zoukankan      html  css  js  c++  java
  • 第44课.继承中的访问级别

    1.问题:子类能访问父类中的私有成员吗?

    子类在父类的外界,所以子类不能直接访问父类的私有成员。但是子类的定义中说子类拥有父类的一切属性和行为,怎么使子类访问父类的私有成员呢?这里就涉及到protected的使用了。

    2.继承中的访问级别

    a.面向对象中的访问级别不只是public和private
    b.可以定义protected访问级别
    c.protected的意义:
     1).修饰的成员不能被外界直接访问(private)
     2).修饰的成员可以被子类直接访问(即只能在子类中访问)

    eg:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class Parent
    {
    protected:
        int mv;
    public:
        Parent ()
        {
            mv = 100;
        }
        
        int value()
        {
            return mv;
        }
    };
    
    class Child : public Parent
    {
    public:
       int addvalue(int v)
       {
            mv = mv + v;        //protected 修饰的成员变量可以被子类调用
       }
    };
    
    int main()
    {
        Parent p;
        
        cout << "p.mv = " << p.value() << endl;
        
        //p.mv = 1000;      外界不能调用protected修饰的变量
        
        Child c;
        
        cout << "c.mv = " << c.value() << endl;
        
        c.addvalue(50);
        
        cout << "c.mv = " << c.value() << endl;
        
        //c.mv = 1000;      不能在子类之外的地方调用protected函数
        return 0;
    }
  • 相关阅读:
    vim字体设置
    windows下eclipse打不开
    ubuntu的无线网无法连上
    将ubuntu系统录到u盘上
    使用UltraISO刻录系统到U盘可能会出现打不开的情况
    windows安装程序制作
    安装ubuntu双系统
    数据库插入数据时间比较
    LeetCode 189. Rotate Array
    LeetCode 228. Summary Ranges
  • 原文地址:https://www.cnblogs.com/huangdengtao/p/11935005.html
Copyright © 2011-2022 走看看