【问题标题】:Access rights of undefined access member variable (neither public nor private)未定义访问成员变量的访问权限(公共或私有)
【发布时间】:2016-08-02 12:12:24
【问题描述】:

如果不定义访问权限,C++ 中的成员变量会怎样?

例如,在以下代码中:

class Base {
  int myQuestion;
  public:
    int myPublic;
  private:
    int myPrivate;
}

谁可以访问myQuestion

【问题讨论】:

标签: c++ class member access-specifier


【解决方案1】:

如果您使用关键字class,则访问默认为private。如果您使用struct,则默认为public

这几乎是两个关键字之间的唯一区别。

唯一的其他区别是当你继承时,class 默认为私有继承,struct 为公共继承。

【讨论】:

  • 这是唯一的区别
  • Both types are classes; C++ does not have structs。讨论使用 关键字 classstruct,以避免传播误解。
  • @king_nak “这是唯一的区别” - 你忘记了默认继承的区别。 classstruct之间有两个的区别;默认访问和默认继承类型。
【解决方案2】:

class 中,它是private。在struct 中,它是public

【讨论】:

    【解决方案3】:

    class 中默认为private,在struct 中默认为public

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      相关资源
      最近更新 更多