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

C++面向对象编程:从封装到实战

一、面向过程 VS 面向对象1. 面向过程之前全部所学核心步骤化、流程驱动先做什么、再做什么函数独立零散。适合简单小程序、逻辑简单场景。2. 面向对象C 核心核心万物皆对象封装整体将「数据 操作数据的行为」打包成一个整体 ——类。三大特性封装、继承、多态本篇吃透封装二、类与对象 核心概念类class抽象模板描述一类事物的共性包含成员变量属性 成员函数行为。对象类的具体实例通过类创建出来的实体一个类可以实例化无数个对象。通俗类比类 房子图纸对象 实际盖出来的每一套房子三、类的语法结构class 类名 { // 访问权限 访问修饰符: // 成员变量 变量定义; // 成员函数 函数声明/定义; };访问权限三大权限private私有仅本类内部访问默认权限public公有类内、类外、全局都能访问protected保护继承专用后续讲解四、最简类定义 对象实例化1. 定义一个 Person 类#include iostream #include string using namespace std; // 定义类 class Person { // 公有权限 public: // 成员变量属性 string name; int age; // 成员函数行为 void showInfo() { cout 姓名 name 年龄 age endl; } };2. 创建对象 调用成员int main() { // 方式1栈上实例化对象 Person p1; p1.name 张三; p1.age 18; p1.showInfo(); // 方式2多个对象互相独立 Person p2; p2.name 李四; p2.age 20; p2.showInfo(); return 0; }输出姓名张三 年龄18 姓名李四 年龄20五、封装的核心思想1. 为什么需要封装保护核心数据防止外部随意篡改统一接口访问代码更安全、易维护隐藏内部实现只暴露必要功能2. 标准封装写法成员变量私有化private提供公有 get/set 函数 读写数据封装标准模板class Student { private: // 私有成员外部无法直接访问 int id; double score; public: // set设置私有变量 void setId(int _id) { id _id; } void setScore(double _s) { // 可加数据校验防止非法值 if(_s 0 _s 100) { score _s; } } // get读取私有变量 int getId() { return id; } double getScore() { return score; } };3. 封装调用演示int main() { Student s; // s.id 1001; // 报错私有无法直接访问 s.setId(1001); s.setScore(92.5); cout 学号 s.getId() endl; cout 成绩 s.getScore() endl; return 0; }六、对象的两种创建方式栈对象常用、自动释放Person p;堆对象 / 动态对象new 创建手动释放Person* p new Person; p-name 王五; p-showInfo(); // 手动释放 delete p; p nullptr;对象指针访问成员使用-普通对象使用.七、类内函数 与 类外函数分离写法大型项目常用类内声明类外实现结构更清晰class Person { public: string name; int age; void work(); // 类内声明 }; // 类外实现加 类名:: 作用域 void Person::work() { cout name 正在工作 endl; }八、高频易错点class 默认权限为privatestruct 默认public私有成员直接在类外访问编译报错对象指针误用.、普通对象误用-堆对象忘记 delete造成内存泄漏未封装直接暴露所有成员不符合工程规范九、今日核心总结类是模板对象是实例C 面向对象基础三大访问权限public / private / protected封装核心变量私有函数公有数据安全可控对象访问普通对象.、对象指针-类外实现成员函数必须加类名::作用域限定符

相关文章:

C++面向对象编程:从封装到实战

一、面向过程 VS 面向对象1. 面向过程(之前全部所学)核心:步骤化、流程驱动先做什么、再做什么,函数独立零散。适合:简单小程序、逻辑简单场景。2. 面向对象(C 核心)核心:万物皆对象…...

B站会员购抢票神器:新手也能快速上手的终极购票指南

B站会员购抢票神器:新手也能快速上手的终极购票指南 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 还在为抢不到B站会员购的漫展门票而烦恼吗?biliTickerBuy是一款开源…...

如何隐藏phpMyAdmin的真实访问路径_修改Alias或重命名目录以防止暴力破解

不能直接重命名phpMyAdmin目录,因Web服务器无法自动识别新路径致404,且系统更新会覆盖修改;应保留原目录,用Apache的Alias或Nginx的location映射并配IP限制与路径同步。为什么不能直接重命名 phpMyAdmin 目录重命名 /usr/share/ph…...

西安AI智能获客

在西安这片硬科技企业星罗棋布的创新沃土上,西安投肯未来科技有限公司正以AI为笔,在企业服务领域书写着数字化获客的全新答卷。作为本土AI智能营销赛道的新锐力量,这家扎根丝路起点的科技公司,瞄准传统获客模式成本高、效率低、精…...

TouchPad(单例)

TouchPad 是一个底层触摸输入管理器,直接挂载在场景中的 UI 或游戏物体上,通过实现 Unity 事件系统接口(IPointerDownHandler, IDragHandler, IPointerUpHandler, IBeginDragHandler, IDropHandler, IPointerExitHandler)来接收原…...

Kotlin的@kotlin.time.ExperimentalTime的使用示例

Kotlin作为一门现代化的编程语言,不断引入实验性功能来优化开发体验。其中,kotlin.time.ExperimentalTime注解为时间操作提供了强大的实验性支持,让开发者能够更灵活地处理时间测量和计算。本文将深入探讨其使用场景,并通过具体示…...

DeepSeek写的小说,prompt 是“写一个搞 大模型AI 的爽文男主小说,写 5 章内容,剧情搞笑好玩”

林北醒过来的时候,脑子里多了个玩意儿。不是比喻,是真多了个玩意儿。一个冰冷机械的声音在他脑壳里响了起来:“叮——恭喜宿主,神豪返利系统已绑定。检测到宿主当前余额:143.8元。系统初次启动,赠送新手大礼…...

Qwen3-4B-Instruct保姆级教程:从服务器初始化到WebUI访问全链路

Qwen3-4B-Instruct保姆级教程:从服务器初始化到WebUI访问全链路 1. 引言 Qwen3-4B-Instruct-2507是Qwen3系列的端侧/轻量旗舰模型,原生支持256K token(约50万字)上下文窗口,并可扩展至1M token。这意味着它能轻松处理…...

品牌智能增长效果如何评估?三大核心指标拆解

当下,很多品牌投入大量资源布局品牌智能增长,却普遍面临一个核心困境:AI 在解答用户相关问题时,鲜少提及自身品牌。其症结在于:AI 平台品牌增长的效果评估,不可套用传统 SEO 的逻辑框架。与 SEO 聚焦搜索排…...

Mac彻底清理指南:Pearcleaner让你的系统重获新生

Mac彻底清理指南:Pearcleaner让你的系统重获新生 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾发现Mac磁盘空间越来越小,但…...

AI时代产品经理的工作流重构

从“需求描述”到“可交付物”:AI时代产品经理的工作流重构 2026年的今天,大模型带来的AI能力已经深度嵌入产品工作流。然而,许多产品经理仍然把AI当做“更聪明的搜索引擎”——在对话框里输入需求,得到一堆“正确的废话”后&…...

无锡佳钛合不锈钢有限公司三通的焊接工艺

无锡佳钛合不锈钢有限公司 在工业领域中,三通作为一种重要的连接件,其焊接工艺的优劣直接影响着整个管道系统的质量和可靠性。三通焊接是一项技术要求较高的工作,需要严谨的操作和精细的工艺控制。三通焊接的首要步骤是焊接前的准备工作。这…...

终于找到了!新手导演制作微电影专用的AI工具,即梦Seedance 2.0让我直接起飞

哈喽,艾瑞巴蒂!我是你们的AI工具人博主——xiao阿娜。最近收到很多影视专业学生和独立导演的私信:"阿娜,有没有新手导演制作微电影专用的AI工具?零基础也能上手的那种?"我太懂这个需求了。你有满…...

React 快速入门到精通教程:从零基础到能写项目

React 快速入门到精通教程:从零基础到能写项目 React 官方把它定义为:用 JavaScript 构建用户界面的库,核心思想是把页面拆成一个个组件,再用数据驱动页面变化。React 官方快速入门也强调,日常开发中最常用的能力包括…...

QFT终极指南:如何用Rust构建真正的点对点UDP文件传输工具

QFT终极指南:如何用Rust构建真正的点对点UDP文件传输工具 【免费下载链接】qft Quick Peer-To-Peer UDP file transfer 项目地址: https://gitcode.com/gh_mirrors/qf/qft 在当今数字化时代,文件传输已成为日常工作和协作的基础需求。无论是开发者…...

小白必看!零技术、零代码,用Open Claw 1688接口搞定选品监控

作为一个电商小白,刚开始做无货源、小铺的时候,我真的被选品逼疯过——完全不懂代码,看到别人说“爬虫选品”“接口对接”就头大,生怕自己学不会;手动在1688翻款,每天翻一下午,眼睛都看花了&…...

2026年植物精粹科技活酿人参酒深度解析及权威榜单发布

行业痛点分析当前天然药用植物行业面临诸多难题,严重制约了植物精粹科技的发展。资源稀缺、种植周期长是首要问题,像人参等珍稀药材生长周期长达数年甚至数十年,难以满足市场需求。数据表明,传统人参种植需15年才能达到一定品质&a…...

个人第一篇博客

我叫赵志东,来自东莞 我学编程的目的是不想浪费这两个月的时间 每天花费3小时来学习编程。...

(GGGGS) n 连接子截短现象的发现与机制--文献精读223

Discovery and investigation of the truncation of the (GGGGS)n linker and its effect on the productivity of bispecific antibodies expressed in mammalian cells(GGGGS) n 连接子截短现象的发现与机制探究及其对哺乳动物细胞表达双特异性抗体产量的影响摘要蛋白质工程是…...

Flux2-Klein-9B-True-V2文生图教程:电影级打光提示词(伦勃朗/蝴蝶光)

Flux2-Klein-9B-True-V2文生图教程:电影级打光提示词(伦勃朗/蝴蝶光) 1. 项目简介与快速入门 Flux2-Klein-9B-True-V2是基于FLUX.2-Klein-9B微调的图片生成模型,专为高质量图像生成和编辑而设计。这个模型特别适合需要专业级光影…...

MedGemma-X在教学查房中的应用:AI实时生成鉴别诊断思维导图

MedGemma-X在教学查房中的应用:AI实时生成鉴别诊断思维导图 1. 教学查房的痛点与AI解决方案 教学查房是医学教育中至关重要的环节,但传统方式存在几个明显痛点: 时间压力大:在有限的时间内,带教老师需要完成患者诊疗…...

小白也能轻松上手:DDColor黑白修复ComfyUI指南

小白也能轻松上手:DDColor黑白修复ComfyUI指南 1. 为什么选择DDColor修复老照片? 老照片承载着珍贵的记忆,但随着时间的推移,这些黑白影像逐渐褪色、模糊。传统的手工修复方法不仅耗时费力,还需要专业的美术功底。现…...

智能导游中的路线规划与讲解服务

智能导游中的路线规划与讲解服务 随着人工智能技术的快速发展,智能导游已成为旅游行业的新宠。它不仅能为游客提供个性化的路线规划,还能通过语音讲解、互动问答等方式,让旅行体验更加丰富。无论是自由行游客还是团队游客,智能导…...

PyCharm专业版用户看过来:不用Anaconda,如何用内置工具创建和管理Python虚拟环境?

PyCharm专业版虚拟环境管理全指南:告别Anaconda的轻量化方案 每次启动Anaconda Navigator时那个缓慢的加载进度条,是否让你怀念PyCharm流畅的启动体验?作为PyCharm专业版用户,你可能还没意识到自己手中已经握有一把环境管理的瑞士…...

NSGA-II vs. 传统遗传算法:多目标优化场景下,你该选哪个?(附对比实验)

NSGA-II与传统遗传算法深度对比:多目标优化实战指南 当面对需要同时优化多个相互冲突目标的工程问题时,算法选型往往成为项目成败的关键分水岭。传统遗传算法(GA)作为进化计算的经典代表,与专为多目标优化设计的NSGA-I…...

一人管50个TK号,每天只花10分钟?全靠指纹浏览器AI Agent

刚狠心辞了档口那两个做代运营的小妹,这高昂的人力开支实在扛不住了。在青岛卖假发去海外,以前我纯靠人工死磕10个TK号,每天起码耗费4个小时挨个去点赞、发评论,手都麻了。后来用过一阵子RPA程序,结果写脚本麻烦得要死…...

VSCode日志实时过滤与智能告警(Log Monitor Pro 2.4新特性首发):支持正则分组提取+阈值触发Shell脚本

更多请点击: https://intelliparadigm.com 第一章:VSCode日志插件教程 安装与启用日志查看插件 在 VSCode 中高效分析应用日志,推荐使用官方认证的 Log File Highlighter 或轻量级的 Log Viewer。打开扩展视图(CtrlShiftX&…...

为什么孩子要先学盲打再提速?科学打字训练方法应该是怎样的?

不少家长都有同款困惑:孩子写作文、整理课堂笔记、线上交作业,思路想得清清楚楚,实操打字却拖后腿。打两行就低头找键盘,频繁回删改错字,写作思路反复中断,半小时敲不出一小段内容。 很多人盲目把问题归为孩…...

如何安全备份安卓短信和通话记录:SMS Backup+ 的完整指南

如何安全备份安卓短信和通话记录:SMS Backup 的完整指南 【免费下载链接】sms-backup-plus Backup Android SMS, MMS and call log to Gmail / Gcal / IMAP 项目地址: https://gitcode.com/gh_mirrors/sms/sms-backup-plus 您是否曾担心手机丢失或损坏时&…...

LiquidAI LFM2-2.6B多平台部署:Ollama CLI调用+LM Studio图形界面双教程

LiquidAI LFM2-2.6B多平台部署:Ollama CLI调用LM Studio图形界面双教程 1. 模型简介 LFM2-2.6B-GGUF是由Liquid AI公司开发的轻量级大语言模型,经过量化处理后特别适合在资源有限的设备上运行。这个2.6B参数的模型在保持良好性能的同时,大幅…...