class && struct && union 注意事项

class 作为C++中组织数据的基本类型. C++赋予 class 强大的组织能力, 可以包含数据成员方法. 使用 public, protected, private 进行访问控制;class 之间可以通过继承来复用代码; 通过 virtual 修饰函数和继承来实现多态. C++的面向对象功能离不开 class, 但C++为了兼容C代码, 还是保留了 struct 关键字. structclass 唯一的区别是: 成员访问控制. class 默认是 private, 而 struct 默认是 public. 下面看一个例子:

struct num_s {
    int m_a;

  private:
    int m_b;
};

class num_c {
    int m_b;

  public:
    int m_a;
};

上面的例子中, 通过structclass 分别定义了两个类, 它们的访问控制权限是一样的.

在C中还有一个和数据组织有关的关键字union, 那在C++中union又是怎样的呢?

  • union是为了节省内存设计的特殊类, 各个成员间共享同同一片内存.
  • 默认的访问控制权限是public.
  • 可以包含构造析构函数.
  • 不能包含引用成员, 不能包含虚函数, 不能继承与被继承.
  • 匿名union可通过外部直接访问.

如果觉得有帮助, 可以扫描右边的微信打赏码支持一下.

Leave a Reply

Your email address will not be published. Required fields are marked *