【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++中的核心面向对象特性,支持封装、继承和多态等特性。

总结

相关推荐
看到我,请让我去学习31 分钟前
Qt— 布局综合项目(Splitter,Stacked,Dock)
开发语言·qt
GUET_一路向前44 分钟前
【C语言防御性编程】if条件常量在前,变量在后
c语言·开发语言·if-else·防御性编程
曳渔1 小时前
UDP/TCP套接字编程简单实战指南
java·开发语言·网络·网络协议·tcp/ip·udp
楼田莉子1 小时前
C++算法题目分享:二叉搜索树相关的习题
数据结构·c++·学习·算法·leetcode·面试
三千道应用题1 小时前
WPF&C#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
开发语言·c#·wpf
hqxstudying1 小时前
JAVA项目中邮件发送功能
java·开发语言·python·邮件
咪咪渝粮1 小时前
JavaScript 中constructor 属性的指向异常问题
开发语言·javascript
最初的↘那颗心1 小时前
Java HashMap深度解析:原理、实现与最佳实践
java·开发语言·面试·hashmap·八股文
大锦终2 小时前
【算法】模拟专题
c++·算法
方传旺2 小时前
C++17 std::optional 深拷贝 vs 引用:unordered_map 查询大对象性能对比
c++