当前位置: 首页 > news >正文

class和struct的区别

在 C++ 中,classstruct本质几乎是一样的,区别主要体现在默认访问权限继承方式 上:


✅ 面试答题模板:“class 与 struct 的区别?”

🌟 答案核心(简洁版):

C++ 中 classstruct 的唯一区别在于:

  • struct 的默认成员访问权限是 public
  • class 的默认成员访问权限是 private

其他方面,包括成员函数、继承、多态、构造析构函数等,功能完全一致


🧠 对比总结:

特性structclass
默认成员访问权限publicprivate
默认继承权限publicprivate
支持成员函数✅ 支持✅ 支持
支持构造/析构函数✅ 支持✅ 支持
支持继承/虚函数/多态✅ 支持✅ 支持
一般使用场景数据结构(类似 C)封装、类设计

📌 示例代码:

struct MyStruct {int x;           // 默认 publicvoid show();     // 默认 public
};class MyClass {int x;           // 默认 private
public:void show();     // 明确 public
};

🧠 延伸理解(适合高级面试):

  • 在 C++ 中,struct 不再像 C 中那样只能用于被动的数据结构,它也能拥有构造函数、析构函数、运算符重载、虚函数等完整的面向对象特性

  • 因此,使用 class 还是 struct 更多是风格和语义约定

    • struct 表示纯数据对象(如 POD 类型);
    • class 表示封装行为的对象

💡 面试建议:

可以这样回答:“在 C++ 中,classstruct 在语法功能上几乎一致,唯一的区别是默认访问权限不同。一般约定使用 struct 表示数据结构、class 表示带封装和行为的类。”


http://www.lryc.cn/news/596096.html

相关文章:

  • RAG实战指南 Day 21:检索前处理与查询重写技术
  • 腾讯研究院 | AI 浪潮中的中国品牌优势解码:华为、小米、大疆、科大讯飞等品牌从技术破壁到生态领跑的全维突围
  • Kotlin调试
  • IO复用(多路转接)
  • Windows Server 设置MySQL自动备份任务(每日凌晨2点执行)
  • 二叉树的题目,咕咕咕
  • VirtualBox安装提示security安全问题
  • 控制器(Controller)模块的架构与工作流程 -OpenExo
  • Agent架构与工作原理:理解智能体的核心机制
  • Nacos 注册中心高频面试题及解析
  • 从感知到决策:虚拟仿真系统与视觉算法融合下的多路RTSP视频接入技术探究
  • 将生产库的数据连同表结构一起复制到测试库中
  • 如何安装没有install.exe的mysql数据库文件
  • ZLMediaKit 入门
  • 20250722在Ubuntu 24.04.2下配置编译RD-RK3588开发板的Android13的编译环境
  • wps dispimg python 解析实现参考
  • 二分查找-852.山峰数组的峰顶索引-力扣(LeetCode)
  • 函数——C语言的重要部分
  • React Three Fiber 实现昼夜循环:从光照过渡到日月联动的技术拆解
  • 金山办公WPS项目产品总监陈智新受邀为第十四届中国PMO大会演讲嘉宾
  • 两个android,一个客户端一个服务器端
  • 深入解析 Spark:关键问题与答案汇总
  • 在easyui中如何自定义表格里面的内容
  • Python爬虫实战:研究pymorphy2库相关技术
  • Python爬虫实战:研究PyPLN库相关技术
  • 【文献笔记】ARS: Automatic Routing Solver with Large Language Models
  • PHP获取淘宝拍立淘(以图搜图)API接口操作详解
  • 如何迁移jenkins至另一台服务器
  • 一个基于现代C++智能指针的优雅内存管理解决方案
  • 探索飞算JavaAI:AI赋能Java开发的新范式