【问题标题】:Protected data members and data functions受保护的数据成员和数据函数
【发布时间】:2011-05-25 14:49:03
【问题描述】:

当我在一个类中声明一个受保护的数据成员时,这意味着它不能访问外部世界,而是派生类。我的问题是

从派生类派生的类是否可以访问?

【问题讨论】:

    标签: c++ oop access-specifier


    【解决方案1】:

    实际上,受保护的数据成员只能使用受保护的公共继承来访问。

    这是一个在派生类中无法访问受保护成员的示例:

    class Base  
    {  
    protected:  
    int iBase;  
    };
    
    class Derived : private Base  
    {  
    // iBase not accessible  
    };
    

    【讨论】:

      【解决方案2】:

      是的。 (顺便说一句,你可以简单地尝试一下。)

      【讨论】:

        【解决方案3】:

        是的,受保护的数据成员可以在继承层次结构中一路访问。

        通常最好避免使用受保护的数据。另一种方法是编写访问私有数据的受保护方法。这将数据封装在单个类中。它还可以轻松为数据更改设置断点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-09
          • 1970-01-01
          • 2013-11-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-25
          • 2013-01-08
          相关资源
          最近更新 更多