c++中类与结构体的区别

          1. 默认访问修饰符

类(class

  • 默认访问方式是私有的(private。如果没有指定访问修饰符,则类的成员(数据成员和成员函数)默认为私有的(private

    • class MyClass {
          int x; // 默认为 private
      };
      

      结构体(struct: 

    • 默认访问修饰是公有的(public。如果没有指定访问修饰符,则结构体的成员默认为公有的(public

      struct MyStruct {
          int x; // 默认为 public
      };
      

      2. 继承的默认访问方式

    • 类(class

      • 默认继承方式是私有继承(private。如果没有指定继承方式,则从基类继承的成员默认为私有继承(private

        class AA {};
        class BB : AA {}; // 默认为 private 继承
        

        结构体(struct

      • 默认继承方式是公有继承(public。如果没有指定继承方式,则从基类继承的成员公有继承(public

        struct AA {};
        struct BB : AA {}; // 默认为 public 继承
        

        3. 用途和习惯

      • 类(class

        • 通常用于实现复杂的对象,强调封装、继承和多态等面向对象的特性。类的设计通常考虑了数据隐藏和安全性。
      • 结构体(struct

        • 通常用于表示简单的数据结构,习惯上用于存储一组相关的数据成员而不需要封装行为。结构体的设计更倾向于数据聚合,而不是封装复杂的逻辑.

4. 成员函数

  • 类(class

    • 可以包含成员函数,包括构造函数、析构函数、重载运算符等。成员函数通常用于操作类的数据成员。

  • 结构体(struct

    • 也可以包含成员函数,但传统上结构体更侧重于数据成员。现代 C++ 中的结构体也可以包含成员函数,像类一样。

总结

  • 默认访问修饰符class 的默认访问控制是 private,而 struct 的默认访问控制是 public
  • 默认继承方式class 的默认继承方式是 private,而 struct 的默认继承方式是 public
  • 用途class 通常用于实现复杂的面向对象设计,而 struct 通常用于简单的数据结构。

尽管有这些区别,C++ 允许 structclass 互换使用,并且在现代 C++ 编程中,结构体和类的界限变得越来越模糊。实际上,你可以使用 struct 作为类的替代品,特别是当你需要一个简单的数据结构时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值