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

总结

相关推荐
不亭5 分钟前
python自动化测试之Pytest断言及Allure报告定制
开发语言·python·pytest
攻城狮7号7 分钟前
【10.7】队列-解预算内的最多机器人数目
数据结构·c++·算法
txwtech9 分钟前
QT使用QAbstractTableModel 0x8读取访问权限冲突
开发语言·数据库·qt
柳鲲鹏15 分钟前
QT 5.15.2 开发地图ArcGIS 100.15.6(ArcGIS Runtime SDK for Qt)
开发语言·qt·arcgis
不会玩技术的技术girl22 分钟前
使用Python爬虫获取1688 App原数据API接口
开发语言·爬虫·python
zhenryx31 分钟前
前端-导出png,jpg,pptx,svg
开发语言·前端·javascript
子伟-H539 分钟前
Vue项目能进行哪些性能优化?
开发语言·javascript·ecmascript
蹦蹦跳跳真可爱5891 小时前
Python----PyQt开发(PyQt基础,环境搭建,Pycharm中PyQttools工具配置,第一个PyQt程序)
开发语言·python·pyqt
逆鱼_041 小时前
C语言-结构体
c语言·开发语言
倔强的石头1062 小时前
【C++指南】解锁C++ STL:从入门到进阶的技术之旅
开发语言·c++