小学生学C++编程语法知识(为什么 class 需要封装?) 发布时间:2026/8/5 7:16:52 C面向对象核心为什么 class 需要封装同学们上节课我们学习了struct 和 class 的区别我们知道class默认private也就是自己的数据别人不能随便修改。那么问题来了为什么 C 要设计 private为什么不让所有变量都 public想改就改呢这就是今天要学习的核心封装Encapsulation一、先看一个没有封装的世界假设我们写一个学生类class Student { public: string name; int score; };使用Student s; s.name小明; s.score95;看起来很方便。但是问题来了如果有人写s.score-100;或者s.score1000;怎么办学生成绩应该0 ~ 100但是现在-100 1000都可以。程序不会报错。为什么因为score是public公开的。任何人都可以改。二、生活中的例子银行卡假设银行卡这样设计class BankCard { public: double money; };然后BankCard card; card.money1000000;任何人都可以card.money999999999;这显然不合理。银行账户余额不能让别人直接修改。所以真实世界设计银行卡外面只能存钱取钱查询余额但是内部余额必须保护。这就是封装三、什么是封装一句话把重要的数据隐藏起来只允许通过规定的方法访问。英文Encapsulation它包含两个动作1. 隐藏数据使用private2. 提供接口使用public例如class Student { private: int score; public: void setScore(int x) { scorex; } int getScore() { return score; } };现在score 藏起来了。外面不能s.score100;错误。必须s.setScore(100);四、private到底有什么作用我们来看class Student { private: int score; };private表示只有自己可以访问比如类里面void test() { score100; }可以。但是外面Student s; s.score100;不可以。可以想象private 是房间里面的保险箱。public 是房间门口的按钮。别人不能直接打开保险箱。只能按按钮。五、getter 和 setter 是什么很多同学第一次看到get set不知道是什么意思。其实非常简单getterget获取作用读取数据。例如int getScore() { return score; }意思把成绩告诉外面。setterset设置作用修改数据。例如void setScore(int x) { scorex; }意思修改成绩。所以函数作用getterget读取setterset修改六、为什么不直接访问要绕一圈有同学可能问老师s.score不是很方便吗为什么s.setScore(90);这么麻烦答案因为我们可以增加规则例如成绩必须0~100settervoid setScore(int x) { if(x0 x100) { scorex; } else { cout成绩错误endl; } }现在s.setScore(150);输出成绩错误程序安全了。七、封装最大的价值控制修改看两个程序没封装student.score-999;任何地方随便改。后果程序容易出错。有封装student.setScore(-999);进入if检查。错误被挡住。所以封装不是为了麻烦程序员。而是为了让程序更安全、更容易维护。八、封装和游戏角色的关系比如游戏英雄class Hero { private: int hp; public: void attack(); void heal(); };血量hp不能直接改。否则玩家hp999999游戏就坏了。所以只能攻击attack()回血heal()九、public、private、protected 三兄弟C 有三个权限1. public公开别人可以访问public: int age;像学校公告。2. private私有只有自己可以访问private: int password;像自己的密码。3. protected保护以后学习继承时使用。现在可以简单理解给自己的孩子使用。十、一个例子设计一个银行账户#includeiostream using namespace std; class Account { private: double money; public: Account() { money0; } void deposit(double x) { if(x0) { moneyx; } } double getMoney() { return money; } }; int main() { Account a; a.deposit(100); couta.getMoney(); return 0; }输出100注意外面不能a.money1000000;因为money 是私有的。十一、封装和结构体有什么关系回忆structstruct Student { int score; };默认public所以s.score100;可以。classclass Student { int score; };默认private所以不能直接访问。但是两者都可以封装。例如structstruct Student { private: int score; };也是合法的。十二、信奥竞赛需要学封装吗学习 class 的意义在于培养大型程序设计思想软件工程能力AI时代编程能力未来写游戏App人工智能项目封装非常重要。十三、本节课总结记住下面这句话封装就是把数据藏起来把操作方法留下来。关键词概念作用private保护数据public提供服务getter读取数据setter修改数据最终目标让对象自己管理自己而不是让外部随便破坏。 相关新闻 Ubuntu 22.04 VMware共享文件夹挂载失败:vmhgfs-fuse完整解决方案 1. 问题场景与核心痛点如果你正在用VMware Workstation或Fusion跑Ubuntu 22.04,并且像我一样,习惯在虚拟机和宿主机之间设置一个共享文件夹来传文件、共享代码,那你大概率踩过这个坑:在Ubuntu的/mnt/hgfs目录下,那个你… 2026/8/5 7:16:52 智能体SDK开发指南:从核心能力到工程实践 这次我们来看一个面向开发者的智能体 SDK。这个项目的核心愿景很直接:让开发者能够像构建“活对话”一样,创作出具有动态交互能力的智能体。它不是另一个复杂的 AI 框架,而是试图通过一套精心设计的 SDK,将智能体的开发体验变得直… 2026/8/5 7:16:52 Docker磁盘空间清理指南:从手动操作到自动化策略 1. 项目概述:为什么Docker会“吃”掉你的磁盘空间?如果你用Docker有一段时间了,大概率遇到过这个场景:某天系统弹窗提示C盘空间不足,或者执行docker build时突然报错“no space left on device”。你打开资源管理器一看… 2026/8/5 7:11:52 最新新闻 耗材还靠本子记?RuoYi Office 办公用品产品介绍:消耗/借用/资产品三分治,一键转固对接资产 耗材还靠本子记?RuoYi Office 办公用品产品介绍:消耗/借用/资产品三分治,一键转固对接资产 🌐 演示地址:http://ruoyioffice.com | 📦 源码1GitHub:ruoyi-office | 📦 源码2GitCode&… 2026/8/5 8:01:55 SAP HANA 2.0 Express Edition 虚拟机环境搭建与配置实战指南 1. 项目概述:为什么选择SAP HANA 2.0 Express Edition 如果你正在寻找一个功能强大、但又不想在初期投入巨额许可费用的内存数据库来学习、开发原型或者搭建小型应用,那么SAP HANA 2.0 SPS (Support Package Stack) Express Edition 几乎是你绕不开的一个… 2026/8/5 8:01:55 Matlab工程计算实战:从基础语法到性能优化 1. 为什么选择Matlab作为工程计算工具 作为一名长期使用Matlab的工程师,我经常被问到为什么要选择这个商业软件而不是开源替代品。Matlab的核心优势在于其完整的生态系统和经过工业验证的可靠性。当我在处理航天器的轨道计算时,Simulink提供的可视化建模… 2026/8/5 8:01:55 软考架构师软件工程(二):逆向工程、净室、需求与建模4大核心考点(附速记口诀+做题技巧) 本文为软件工程系列第2篇,整理了完整的软考高级备考资料包,文末免费获取 前言 软件工程在系统架构设计师考试中重要程度仅次于架构设计类章节,综合部分分值约十几分至近20分,案例分析及论文写作也可能涉及。本系列将软件工程14大… 2026/8/5 8:01:55 Cookie、Session与Token:Web身份认证三大核心机制深度解析与实战选型 1. 从“你是谁”到“我认识你”:身份认证的演进脉络 在互联网世界里,服务器每天要面对海量的请求。想象一下,你走进一家从不记人脸、也不发会员卡的咖啡店,每次点单都得重新报一遍自己的口味偏好、支付方式,甚至还得证… 2026/8/5 8:01:55 概念解析:流程应用不仅仅是一张流程图 在接触BPM(业务流程管理)或ORION流程引擎时,无论是初学者还是部分业务架构师,都极易陷入一个认知误区:将流程应用(Process Application)等同于一张BPMN流程图。 在真实的企业级生产环境中&#… 2026/8/5 7:56:55 日新闻 鸿蒙6.1 arkui.componentSnapshot组件截图坑:返回PixelMap不是dataURL 本文是「鸿蒙 6.1 API 23 开发坑系列」第 2 篇(ArkUI 桶第 2 篇)。本篇讲 ohos.arkui.componentSnapshot namespace(API 10,鸿蒙 6.1 API 23 基座)——组件截图三个方法 get/getSync/createFromBuilder。鸿蒙坑根因&am… 2026/8/5 0:26:31 20个P0级大模型本体概念,产品经理必看,收藏这份学习资料! 文章介绍了20个大模型本体概念,帮助产品经理在AI产品决策时,不再依赖模糊判断,而是基于精准认知。内容涵盖了模型分类、开源与闭源模型、本地与云端部署、基础模型与对话模型、推理模型、Token、上下文窗口、幻觉、温度参数、系统提示词、思维… 2026/8/5 0:26:31 支付宝体验技术部拆分!前端转型Agent全栈,小白程序员必收藏 支付宝体验技术部拆分,前端工程师转型Agent开发全栈。玉伯等专家主导的团队,曾开发Ant Design、AntV等知名开源项目,影响行业。AI技术推动智能Agent兴起,打破前端边界,需掌握大模型、智能体逻辑等能力。组织调整旨在灵… 2026/8/5 0:26:31 周新闻 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/5 5:03:56 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/5 7:15:00 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/5 6:23:51 月新闻 【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/5 7:15:27 AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/4 8:25:47 AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/5 4:50:19
Ubuntu 22.04 VMware共享文件夹挂载失败:vmhgfs-fuse完整解决方案 1. 问题场景与核心痛点如果你正在用VMware Workstation或Fusion跑Ubuntu 22.04,并且像我一样,习惯在虚拟机和宿主机之间设置一个共享文件夹来传文件、共享代码,那你大概率踩过这个坑:在Ubuntu的/mnt/hgfs目录下,那个你… 2026/8/5 7:16:52
智能体SDK开发指南:从核心能力到工程实践 这次我们来看一个面向开发者的智能体 SDK。这个项目的核心愿景很直接:让开发者能够像构建“活对话”一样,创作出具有动态交互能力的智能体。它不是另一个复杂的 AI 框架,而是试图通过一套精心设计的 SDK,将智能体的开发体验变得直… 2026/8/5 7:16:52
Docker磁盘空间清理指南:从手动操作到自动化策略 1. 项目概述:为什么Docker会“吃”掉你的磁盘空间?如果你用Docker有一段时间了,大概率遇到过这个场景:某天系统弹窗提示C盘空间不足,或者执行docker build时突然报错“no space left on device”。你打开资源管理器一看… 2026/8/5 7:11:52
耗材还靠本子记?RuoYi Office 办公用品产品介绍:消耗/借用/资产品三分治,一键转固对接资产 耗材还靠本子记?RuoYi Office 办公用品产品介绍:消耗/借用/资产品三分治,一键转固对接资产 🌐 演示地址:http://ruoyioffice.com | 📦 源码1GitHub:ruoyi-office | 📦 源码2GitCode&… 2026/8/5 8:01:55
SAP HANA 2.0 Express Edition 虚拟机环境搭建与配置实战指南 1. 项目概述:为什么选择SAP HANA 2.0 Express Edition 如果你正在寻找一个功能强大、但又不想在初期投入巨额许可费用的内存数据库来学习、开发原型或者搭建小型应用,那么SAP HANA 2.0 SPS (Support Package Stack) Express Edition 几乎是你绕不开的一个… 2026/8/5 8:01:55
Matlab工程计算实战:从基础语法到性能优化 1. 为什么选择Matlab作为工程计算工具 作为一名长期使用Matlab的工程师,我经常被问到为什么要选择这个商业软件而不是开源替代品。Matlab的核心优势在于其完整的生态系统和经过工业验证的可靠性。当我在处理航天器的轨道计算时,Simulink提供的可视化建模… 2026/8/5 8:01:55
软考架构师软件工程(二):逆向工程、净室、需求与建模4大核心考点(附速记口诀+做题技巧) 本文为软件工程系列第2篇,整理了完整的软考高级备考资料包,文末免费获取 前言 软件工程在系统架构设计师考试中重要程度仅次于架构设计类章节,综合部分分值约十几分至近20分,案例分析及论文写作也可能涉及。本系列将软件工程14大… 2026/8/5 8:01:55
Cookie、Session与Token:Web身份认证三大核心机制深度解析与实战选型 1. 从“你是谁”到“我认识你”:身份认证的演进脉络 在互联网世界里,服务器每天要面对海量的请求。想象一下,你走进一家从不记人脸、也不发会员卡的咖啡店,每次点单都得重新报一遍自己的口味偏好、支付方式,甚至还得证… 2026/8/5 8:01:55
概念解析:流程应用不仅仅是一张流程图 在接触BPM(业务流程管理)或ORION流程引擎时,无论是初学者还是部分业务架构师,都极易陷入一个认知误区:将流程应用(Process Application)等同于一张BPMN流程图。 在真实的企业级生产环境中&#… 2026/8/5 7:56:55
鸿蒙6.1 arkui.componentSnapshot组件截图坑:返回PixelMap不是dataURL 本文是「鸿蒙 6.1 API 23 开发坑系列」第 2 篇(ArkUI 桶第 2 篇)。本篇讲 ohos.arkui.componentSnapshot namespace(API 10,鸿蒙 6.1 API 23 基座)——组件截图三个方法 get/getSync/createFromBuilder。鸿蒙坑根因&am… 2026/8/5 0:26:31
20个P0级大模型本体概念,产品经理必看,收藏这份学习资料! 文章介绍了20个大模型本体概念,帮助产品经理在AI产品决策时,不再依赖模糊判断,而是基于精准认知。内容涵盖了模型分类、开源与闭源模型、本地与云端部署、基础模型与对话模型、推理模型、Token、上下文窗口、幻觉、温度参数、系统提示词、思维… 2026/8/5 0:26:31
支付宝体验技术部拆分!前端转型Agent全栈,小白程序员必收藏 支付宝体验技术部拆分,前端工程师转型Agent开发全栈。玉伯等专家主导的团队,曾开发Ant Design、AntV等知名开源项目,影响行业。AI技术推动智能Agent兴起,打破前端边界,需掌握大模型、智能体逻辑等能力。组织调整旨在灵… 2026/8/5 0:26:31
ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/5 5:03:56
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/5 7:15:00
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/5 6:23:51
【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/5 7:15:27
AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/4 8:25:47
AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/5 4:50:19