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

总结

相关推荐
fqbqrr8 小时前
2607C++,使用微软detours勾挂工具
c++
人邮异步社区8 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大8 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai8 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜9 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa9 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
一次旅行9 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
噢,我明白了10 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
mabing99310 小时前
Qt 生成条纹图
开发语言·qt
蓝悦无人机11 小时前
C++基础 — 函数总结
开发语言·c++