【C++八股】struct和Class的区别

1. 默认访问控制

  • struct :结构体中的成员默认是 public,即外部代码可以直接访问结构体的成员。

  • class :类中的成员默认是 private ,即外部代码不能直接访问类的成员,必须通过公有接口(通常是成员函数)来访问。

    cpp 复制代码
    struct MyStruct {
        int x;  // 默认是 public
    };
    
    class MyClass {
        int x;  // 默认是 private
    public:
        MyClass() : x(10) {}
        int getX() { return x; }  // 需要通过成员函数访问
    };

    2. 默认继承控制

  • struct :结构体的继承默认是 public,即基类的成员默认以公有方式继承给派生类。

  • class :类的继承默认是 private,即基类的成员默认以私有方式继承给派生类。

3. 面向对象特性

  • struct:结构体通常用于简单的数据存储,不具备类中的丰富的封装、继承和多态等特性。
  • class:类是C++中的核心面向对象特性,支持封装、继承和多态等特性。

总结

相关推荐
_yingty_14 分钟前
GO语言入门经典-反射3(Value 与对象的值)
开发语言·前端·后端·学习·golang
vvilkim17 分钟前
Python multiprocessing 模块全面解析:解锁真正的并行计算能力
java·开发语言
zew104099458842 分钟前
MATLAB实现电池剩余放电时间预测【电子信息专业】
开发语言·matlab·课设·电池剩余放电时间预测
qq_316837751 小时前
uniapp 打包 H5 向 打包的APP 使用 @dcloudio/uni-webview-js 传值
开发语言·javascript·uni-app
嗨信奥1 小时前
2025年3月GESP C++四级等级考试真题——二阶矩阵
c++·青少年编程
liuyunshengsir1 小时前
golang 中 make 和 new 的区别?
开发语言·后端·golang
猫猫头有亿点炸1 小时前
C语言for循环嵌套if相关题目
c语言·开发语言
努力学习的小廉2 小时前
【C++】 —— 笔试刷题day_13
开发语言·c++·哈希算法
froginwe112 小时前
C# 常量
开发语言
chenchihwen2 小时前
Python合并多个pdf
开发语言·python·pdf