【问题标题】:Scope for Public and Private公共和私人的范围
【发布时间】:2016-05-30 13:33:48
【问题描述】:

有一段代码:

class BirdCarreau: public viscosityModel  // Private data
{


        dictionary BirdCarreauCoeffs_;
...

为什么这个 PUBLIC 类型中的数据被称为私有数据?

【问题讨论】:

  • 您是否在问为什么viscosityModelprivate 数据成员对BirdCarreau 不可见?
  • 这不是“public type”,它是一个从其他类公开继承的类。任何名副其实的 C++ 书籍都会教你这一点。
  • 您将继承与访问说明符混淆了。

标签: c++ class scope private public


【解决方案1】:

类中成员的默认访问保护是私有的。所以你需要把public:放在前面。

您提供的public 仅适用于基类。但是您的成员正在扩展派生类。

【讨论】:

    【解决方案2】:

    类本身是公共的,但它的成员对用户来说是私有的。这就是类的一般概念。您可以通过明确将它们的访问修饰符声明为私有来将它们公开

    【讨论】:

      【解决方案3】:

      在您的示例中,public 表示 BirdCarreau 继承了 viscosityModel 的数据和方法。因此使用了 public实现公共继承。默认情况下,类的所有成员都具有私有访问权限。所以,你班上的数据是 私人的。

      【讨论】:

        猜你喜欢
        • 2012-09-03
        • 2015-12-11
        • 1970-01-01
        • 2014-07-14
        • 1970-01-01
        • 2012-08-31
        • 2014-08-21
        • 2012-02-21
        • 2021-03-19
        相关资源
        最近更新 更多