自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 智能指针使用bug

摘要:C++中shared_ptr智能指针错误地管理栈内存会导致程序崩溃。核心原因是shared_ptr设计用于管理堆内存,若绑定栈变量地址,析构时会错误执行delete操作。正确做法是:1)使用new分配堆内存后初始化shared_ptr;2)更推荐用make_shared直接创建(C++11+)。虽然可通过自定义空删除器规避崩溃,但违背设计初衷,应避免使用。关键注意事项:智能指针仅用于堆内存管理,必须包含<memory>头文件,优先选用make_shared而非new操作。

2025-12-25 23:00:00 168

原创 Git 应用分享 PDF 详解 + Git 新手入门指南(菜鸟友好版)

Git 是一个帮你 “管理文件变化、回溯历史、多人协作” 的工具。比如你写代码时,想回到上周的版本、查看谁改了某个功能、和同事一起开发不冲突,都靠它。分支就是 “代码的平行宇宙”—— 你可以在不影响主线(master 分支)的情况下,单独开发功能或修复 bug,开发完再合并回去。主线(master):稳定的代码版本;功能分支(iss53):开发新功能,比如 “登录功能”;修复分支(hotfix):紧急修复线上 bug,比如 “支付功能报错”。PDF 的价值。

2025-12-24 17:29:13 610

原创 数据库句柄:大白话讲透(菜鸟友好版)

数据库句柄就是程序和数据库之间的 “专属遥控器”—— 连数据库时拿遥控器,操作数据库时用遥控器,用完遥控器要还回去,没它程序根本没法碰数据库。对聊天室 2.0 来说,你后续存用户、存聊天记录都会用到它,不用怕复杂,新手先记住 “创建句柄→用句柄操作→关闭句柄” 这三步就行。

2025-12-21 14:42:45 874

原创 核心 Bug:客户端与服务器端口不匹配(导致请求无法送达)

主要问题是客户端与服务器端口不匹配,导致请求无法送达,修复端口一致即可解决核心功能失败问题。输入缓冲区处理和错误处理的优化可进一步提升程序稳定性。

2025-12-15 16:57:45 430

原创 HTTP 服务器项目学习笔记

本文介绍了基于TCP socket的HTTP服务器核心实现要点:1. 基础网络通信部分包括socket创建、绑定、监听和连接处理流程,强调端口复用设置和多线程并发处理的重要性;2. HTTP协议解析部分详细说明了请求方法(GET/POST)、路径和参数的提取方法;3. 响应构建需注意协议格式规范,包括状态行、响应头和空行分隔;4. 业务处理涵盖静态资源访问和动态逻辑(如登录验证),指出路径拼接安全性和参数解析的注意事项。文章提供了完整代码示例和常见问题解决方案,并附快速查找表便于复习核心知识点,强调网络编程

2025-12-07 13:06:53 990

原创 第六章、[特殊字符] HTTP 深度进阶:报文格式 + 服务器实现(从理论到代码)

HTTP报文是浏览器与服务器通信的载体,采用"开始行+首部行+实体主体"的三段式结构。请求报文包含方法(GET/POST)、URL和HTTP版本,响应报文包含状态码和返回数据。HTTP服务器通过监听端口、多线程处理请求来实现并发访问,核心流程包括解析请求、处理业务(静态页面或动态逻辑)和返回响应。实现时需注意报文格式规范(如必须空行)、多线程资源管理、路径解析等问题。该架构通过统一报文格式确保通信可靠性,分离业务逻辑提高可维护性,是Web应用的基础通信机制。

2025-12-07 12:42:46 1409

原创 [特殊字符] HTTP 服务器入门:从 “小白” 到 “懂行” 的快乐指南

本文系统介绍了万维网(WWW)的核心概念与技术演进。主要内容包括:1)基础概念:万维网作为超文本系统的工作原理,URL的结构与作用,HTTP协议的无状态特性,以及HTML的标记语言功能;2)HTTP协议发展:从1.0的短连接、1.1的长连接,到2.0的多路复用和3.0的QUIC协议;3)HTTPS的安全机制。文章通过比喻方式解释技术原理,并指出各版本的优缺点,帮助读者理解Web技术的基础架构与演进逻辑。关键词:万维网、HTTP、URL、HTML、HTTPS。

2025-12-07 12:13:52 966

原创 网络编程所有通信方式总结 C++ 实现模板(基于 C++11+)

本文总结了网络编程中多种通信方式的C++11+实现模板,包括: TCP面向连接通信(可靠传输) UDP无连接通信(快速传输) 多线程TCP并发服务器 epoll IO多路复用(高并发首选) 广播通信(UDP基础) 组播通信(UDP基础) 每种方式均包含核心特点、适用场景、实现步骤和精简代码模板,突出关键流程并采用现代C++特性。其中TCP适合可靠传输场景,UDP适用于实时性要求高的应用,多线程和epoll用于高并发处理,广播/组播实现一对多通信。模板代码可直接扩展用于实际项目开发。

2025-12-01 22:16:11 941

原创 5.5、域套接字:本地进程的 “串门神器”(新手秒懂版)

只要是同一台电脑上的进程通信,优先用域套接字 —— 比管道灵活、比共享内存简单、比本地 TCP 快。记住:“本地通信找域套,不用 IP 和端口,套接字文件当地址,内核转发速度高”~

2025-12-01 16:07:07 927

原创 5.4、组播和广播:UDP 的 “一对多” 通信大法(新手秒懂版)

广播和组播都是基于UDP的高效"一对多"通信方式。广播像"全员大喇叭",向同一局域网所有主机发送消息,适合局域网通知;组播像"兴趣小组",只向加入特定组的主机发送,适合精准推送。关键区别:广播使用网络广播地址,发送端需开启SO_BROADCAST;组播使用D类地址(224.x.x.x),接收端需加入组播组(IP_ADD_MEMBERSHIP)。两者都适合小数据、实时性要求高的场景,但要注意端口一致、地址正确等常见问题。

2025-12-01 15:28:25 869

原创 域套接字:同一台机器里的 “进程传纸条工具”(新手秒懂版)

UNIX域套接字是同一台计算机上进程间通信的高效工具,它通过本地文件路径而非IP地址进行数据传输,比本地TCP更快更安全。其核心优势包括:内核直接转发数据(减少网络开销)、文件系统权限控制安全性、类似网络套接字的简单用法,以及支持双向通信。常见应用场景包括MySQL客户端/服务端交互、Nginx与PHP-FPM通信、IDE内部进程交互等。使用方法与网络套接字相似,只需将地址类型改为本地文件路径。这种通信方式特别适合需要快速、安全、简单的本地进程交互场景。

2025-12-01 10:03:03 334

原创 5.3、TCP 并发服务器:一个 “老板” 搞定 N 个 “客户” 的终极指南

本文用餐厅运营比喻讲解TCP并发服务器的三种实现方式:多进程(专属服务员模式)、多线程(兼职服务员模式)和IO多路复用(智能服务员模式)。多进程稳定性高但资源消耗大,适合小并发场景;多线程效率更高但需注意线程安全,适合中等并发;IO多路复用(尤其是epoll)单线程即可处理高并发,是电商、直播等场景的首选。文章详细拆解了每种方式的实现流程、核心代码和常见坑点,并提供了选型建议:小并发选多进程,中并发选多线程,高并发首选epoll。通过生动的餐厅类比和可直接运行的代码示例,帮助开发者快速掌握并发服务器开发的核

2025-11-26 20:20:17 891

原创 5-2、网络通信基础:跨主机 “聊天” 的终极操作指南(附可跑代码)

网络通信基础三件套:套接字是"电话线"(socket创建+绑定)、TCP像"面对面聊天"(listen/accept流程)、UDP像"发快递"(sendto/recvfrom)。关键点: 套接字创建要选对协议族(AF_INET)和类型(TCP/UDP) TCP必须走完整流程(服务器listen+accept,客户端connect) UDP每次通信都要带地址(recvfrom/sendto) 端口号要用htons转换,IP用inet_addr 常见坑

2025-11-23 19:55:39 1066

原创 5-1、网络编程基本概念:从 “跨主机聊天” 到 “按规矩传数据” 的入门指南

本文通过生活化比喻和代码示例,系统讲解了网络编程核心概念。主要内容包括:1)网络编程本质是跨主机进程通信,核心工具是套接字;2)五层网络体系结构的分工原理;3)TCP/UDP协议的区别与应用场景;4)字节序转换的必要性与操作方法;5)IP地址和端口号的作用机制。文章采用"是什么→为什么→怎么用→坑在哪"的结构,结合快递、交通规则等通俗类比,配合C++代码演示,帮助读者快速掌握网络编程基础知识。最后总结核心口诀和速查表,便于复习记忆。

2025-11-23 12:43:23 751

原创 四、C++11 多线程:从 “跨平台坐牢” 到 “一行代码开线程” 的救赎指南

在 C++11 之前,写多线程就是 “跨平台坐牢”——Linux 用pthread,Windows 用,一套逻辑写两套代码,改 bug 改到怀疑人生。更坑的是pthread那堆void*传参,多传几个数据还得封装结构体,简直是 “脱裤子放屁”。开线程,std::mutex锁资源,做同步,一套代码通吃 Linux/Windows/macOS,再也不用跟平台 API 死磕。线程创建与管理互斥锁(防抢资源)条件变量(防瞎等)—— 吃透这仨,C++ 多线程直接从 “地狱难度” 降到 “新手难度”!

2025-11-19 20:52:34 782

原创 三、线程同步互斥机制:从 “抢资源打架” 到 “按规矩干活” 的终极指南

摘要:同步互斥机制是多线程编程的核心难点,本质是解决线程间"抢资源"的问题。文章用"打工人"比喻生动解释三个核心工具:互斥锁(管独占,如厕所钥匙)、信号量(管顺序,如奶茶店取餐号)、条件变量(管等待,如工厂开工铃)。每种工具都配有代码示例和常见踩坑指南,强调"少即是多"原则——能用简单方案就不用复杂机制。最后提供速查表总结关键知识点,帮助开发者从"翻车重灾区"进阶到"稳定输出区"。

2025-11-19 20:21:27 788

原创 3.4 线程同步之条件变量(初学者入门指南)

条件变量 + 互斥锁,同步必须成对走;等待用while,唤醒不瞎猜(signalbroadcast按需选);加锁解锁要成对,死锁才会远离你;销毁资源别忘记,内存泄漏躲着你。

2025-11-18 20:09:42 664

原创 3.3 线程同步之无名信号量:奶茶店取餐系统教你搞懂同步!

【150字摘要】无名信号量是线程同步工具,相当于奶茶店的"取餐计数器":P操作(sem_wait)如顾客取奶茶(计数器减1,没奶茶则阻塞);V操作(sem_post)如店员做奶茶(计数器加1,唤醒等待线程)。通过sem_init初始化、sem_destroy销毁,实现"生产者-消费者"模型(如1个线程生产5杯奶茶,另1个线程消费)。关键点:初始值0表示无资源,必须成对使用P/V操作,线程间同步时pshared参数设为0。用奶茶店比喻理解信号量机制,轻松掌握线程同步。

2025-11-18 20:08:36 928

原创 【毒舌笔记】多线程编程:从 “只会开线程” 到 “不翻车” 的入门指南

【毒舌多线程速成指南】线程=进程的打工人,共用资源但易翻车。核心操作就5招:pthread_create招人,pthread_self查工号,pthread_exit下班,pthread_join等收工,pthread_detach自动清算。传参必须用结构体(别问为什么),编译必加-lpthread(不加就报错)。主线程提前跑路=全员失业,多个线程抢资源=必出乱子。分离态线程不能join,局部变量传址=定时炸弹。记住:线程执行顺序纯看CPU心情,写顺序逻辑的等着debug到哭吧!

2025-11-17 20:41:19 742

原创 多线程 / 多进程:打工人的 “摸鱼”“硬等”“带薪休假” 大解析!

这篇文章用职场打工人和奶茶的趣味比喻,形象解释了计算机中的阻塞、非阻塞和sleep概念:阻塞如同傻等奶茶什么都不干;非阻塞像没奶茶就先干其他活;sleep则是带薪摸鱼主动休息。通过"工位"(CPU)、"奶茶"(资源)等生活化类比,生动区分了三种模式的特点及多线程/多进程场景下的差异。文末用朗朗上口的口诀总结要点,帮助读者轻松记忆这些抽象概念。整个解释既幽默风趣又准确到位,让枯燥的技术原理变得通俗易懂。

2025-11-17 16:26:59 492

原创 【进程间通信IPC 学习笔记】进程间的 “社交指南”:从管道到信号量的唠嗑大全

【摘要】本文以生动比喻系统梳理了Linux进程间通信(IPC)机制:1)无名管道如"父子传话筒",仅限亲缘进程单向通信;2)有名管道似"公共信箱",任意进程可通过文件路径访问;3)信号相当于"紧急呼叫",仅能异步通知无法传数据;4)消息队列类比"分类快递柜",支持按类型异步收发;5)共享内存是"公共工作台",速度最快但需配合信号量同步;6)信号量则如"会议室门禁",通过P/V操作实现资源互

2025-11-16 21:26:30 774

原创 多进程实现:从 “老板招人” 到 “团队干活” 的打工人指南(诙谐复习版)

摘要:本文以诙谐的"打工人"视角讲解多进程实现的核心概念。通过"老板招人"类比fork创建子进程,"分工"对应判断返回值,"离职"对应exit/_exit退出进程,"交接"对应wait/waitpid回收资源。重点包括:fork的写时复制特性、父子进程分工逻辑、exit与_exit的缓冲区处理差异、避免僵尸进程的资源回收机制,并以文件分块拷贝为例演示多进程协作的实际应用。文章强调进程管理就是"招人-

2025-11-10 20:50:43 980

原创 多进程理论基础:打工人的 “职场生存指南”(诙谐版复习笔记)

家人们!今天咱们把多进程这事儿掰扯明白 —— 其实进程这玩意儿,跟职场打工人的生存逻辑一模一样!这篇笔记用 “职场比喻 + 梗图式记忆”,把抽象概念扒得明明白白,复习时看一眼就秒懂~

2025-11-10 17:08:37 546

原创 进程回收 和 进程阻塞 这两个概念

摘要: 进程回收指父进程清理已终止子进程的资源(如释放PID、内存),避免僵尸进程累积;若父进程未回收,init进程会兜底处理。进程阻塞则是进程因等待I/O等事件主动暂停,释放CPU供其他进程使用,事件完成后恢复就绪状态。回收解决资源泄露问题,阻塞提升CPU利用率,两者分别对应进程生命周期中的终止清理和运行效率优化。(149字) 注:摘要提炼了原文核心概念,用简洁语言对比了进程回收与阻塞的触发原因、状态变化及作用,去除了比喻细节,保留关键信息并控制字数。

2025-11-10 16:59:35 513

原创 IO 操作学习笔记:程序与外部设备的 “聊天宝典”

这篇IO操作学习笔记用生动幽默的语言系统讲解了标准IO和文件IO两大流派的核心知识。摘要如下: 形象比喻将IO操作比作"程序与外部设备的聊天":标准IO是带缓冲的"微信聊天"(高效),文件IO是直接的"电话聊天"(实时) 对比两大IO流派: 标准IO:使用C库函数,带缓冲区,适合文本文件/终端操作 文件IO:系统调用,无缓冲,适合大文件/设备操作 核心知识点: 缓冲区原理(行缓冲/全缓冲/无缓冲) 标准IO常用函数(fopen/fclose/fre

2025-11-10 11:26:35 863

原创 文件指针赋值错误(导致段错误的直接原因)

该代码实现文件拷贝功能时存在三个主要错误:1.核心错误是将目标文件指针错误赋值给源文件指针srcfp,导致后续操作目标文件时出现段错误;2.资源泄露问题,在目标文件打开失败时未关闭已打开的源文件;3.使用不规范的while(true)循环条件。修复方案包括:正确分离源文件和目标文件指针、增加文件打开失败时的资源释放、改用while(1)提高兼容性,并在关闭文件前检查指针有效性。修复后程序可正常实现文件拷贝功能,避免了段错误和资源泄露问题。

2025-11-05 12:54:47 184

原创 VSCode+CMake 学习笔记:工程编译的 “懒人神器”

CMake是跨平台的编译配置工具,可以自动生成Makefile,大幅简化C++项目的构建流程。它通过CMakeLists.txt文件定义编译规则,支持变量设置、多文件编译、库链接等功能,具有语法简单、跨平台的优势。使用外部构建模式可将中间文件隔离在build目录,保持源码整洁。配合VSCode的CMake插件能实现可视化配置,提升开发效率。核心指令包括项目定义、可执行文件生成、头文件路径设置等,避免手动编写复杂的Makefile规则,特别适合多文件项目的管理。

2025-11-03 18:50:09 729

原创 vscode多文件编程bug记录

摘要:在VSCode中实现C++多文件编程的关键是修改tasks.json文件中的编译参数。将原配置中的"${file}"替换为"${fileDirname}/.cpp",使g++编译器能自动编译当前目录下的所有.cpp文件(如main.cpp、operator.cpp等),解决函数未定义引用问题。若文件分布在子目录中,可使用"${workspaceFolder}/**/.cpp"递归编译。修改后按Ctrl+Shift+B即可完成多文件编译链接,生

2025-11-03 18:47:58 428

原创 菜鸟也能懂的 Makefile 学习笔记:工程编译的 “全自动管家”

摘要:本文介绍Makefile的基础用法,帮助编程新手摆脱手动编译的繁琐。Makefile通过"目标-依赖-命令"的规则关系实现自动化编译,只需执行make命令即可完成整个构建流程。关键点包括:1)规则语法必须用Tab缩进命令;2)使用变量简化重复依赖;3)添加clean规则清理生成文件。文章通过"做蛋糕"的类比说明核心概念,并提供可直接套用的模板,使初学者能快速掌握这一提高编译效率的实用工具。

2025-11-02 21:06:21 552

原创 C++ STL list 容器学习笔记:双向链表的 “小火车“ 操控指南

本文总结了C++ STL中list容器的核心操作,通过"双向链表小火车"的比喻形象解释其特性。重点包括:1)多种构造方式(空构造、指定长度、拷贝构造等);2)高效的首尾增删操作(O(1)时间复杂度);3)指定位置插入删除;4)排序与去重(注意必须先排序);5)自定义数据类型排序规则设置。文章通过重构代码命名、添加详细注释和避坑指南,帮助开发者避免常见错误(如迭代器失效、排序函数返回值错误等)。最后提供速查表总结list的核心操作方法,强调其适合频繁中间操作的场景优势。

2025-10-30 15:24:41 581

原创 C++17 新特性学习笔记:从 “test0X 乱码“ 到 “一看就懂“ 的救赎指南

这篇文章总结了C++17的主要新特性,通过重命名原测试函数和添加详细注释,使代码更易理解。主要内容包括:折叠表达式简化参数包处理、类模板参数推导自动推断类型、auto非类型模板参数支持编译期值传递、constexprif实现编译期分支优化、嵌套命名空间简化多层命名空间写法、结构化绑定方便解构tuple/struct、std::variant替代union更安全、std::optional明确表示空值、std::any作为类型安全容器等。每个特性都配有改名后的示例代码、使用说明和常见错误提示,并提供了速查表方

2025-10-27 22:01:18 600

原创 C++20 新特性学习笔记:从 “test0X 乱码“ 到 “一看就懂“ 的救赎指南

摘要:本文是一篇关于C++20新特性的学习笔记,通过重构代码和详细注释的方式,将原本晦涩难懂的测试函数(test0X)改写成具有清晰命名和解释的示例代码。作者重点介绍了C++20的9大核心特性:模块(Modules)、三向比较运算符(<=>)、范围库(Ranges)、日期时间库、格式化库(std::format)、跨度(std::span)、并发增强(jthread/stop_token)、数学常数库(std::numbers)和概念(Concept)。每个特性都配有"改名后代码+通俗

2025-10-27 20:53:02 974

原创 c++20新特性中模块(Module)相比以前的多文件编程有哪些优点

C++20模块是对传统头文件机制的革命性改进,具备显著优势:编译速度大幅提升(避免重复解析)、彻底解决命名污染(通过export控制可见性)、依赖关系清晰化(禁止循环依赖)、严格接口分离(减少声明-实现不一致)和更强封装性。建议新项目优先采用模块,旧项目逐步迁移,注意编译器兼容性差异。模块代表了C++多文件编程的未来方向,将显著提升大型项目的开发效率和可维护性。

2025-10-27 12:57:36 793

原创 【C++11 新特性】从 “test01” 到 “看得懂”:菜鸡的复习笔记(附改名 + 注释版代码)

C++11新特性学习笔记摘要 本文系统总结了C++11核心特性,通过重构代码(如将test07()改为TestRValueReference())并添加详细注释,帮助未来复习时快速理解。主要内容包括: 关键特性:auto类型推导(注意const规则)、decltype精准获取类型、右值引用(&&)优化临时值处理、智能指针(shared_ptr/weak_ptr/unique_ptr)防内存泄漏、Lambda表达式简化代码、可变参数模板支持任意参数。 避坑重点: 智能指针循环引用需用weak_

2025-10-19 09:34:37 900

原创 可变参数模版bug(报错原因分析:参数包未正确 “展开”)

【摘要】报错原因是可变参数模板中未正确展开参数包。在递归调用时,必须用...操作符展开参数包args,而不能直接传递整个参数包。解决方案是将递归调用改为funcName112(args...),这样参数包中的参数会逐个传递。示例展示了四参数调用的执行流程:每次递归都会展开一个参数,直到参数包为空。关键点在于定义时用U...args打包参数,使用时用args...展开参数,这是可变参数模板的核心语法规则。

2025-10-16 12:52:40 430

原创 C++ 可变参数模板:给 “菜鸡” 的大白话详解(能装任意多参数的 “万能口袋”)

C++可变参数模板是处理任意数量、任意类型参数的"万能口袋"。它通过参数包(Args...和args...)和三个点...语法实现打包和展开功能。核心难点在于参数包展开,主要有两种方式:递归展开(需定义终止函数)和C++17的折叠表达式(更简洁)。可变参数模板广泛应用于标准库如make_shared、tuple和格式化输出等场景。使用时需注意必须展开参数包、递归需终止条件等要点。这种特性极大增强了C++处理可变参数的灵活性。

2025-10-16 12:28:43 705

原创 C++ 智能指针:给 “菜鸡” 的大白话详解(再也不怕内存泄漏了!)

本文介绍了C++中智能指针的概念和用法。智能指针相比普通指针能自动管理内存,避免内存泄漏和野指针问题。主要讲解了三种智能指针:unique_ptr(独占所有权,不可拷贝)、shared_ptr(共享所有权,引用计数)和weak_ptr(观察者,解决循环引用)。文章通过生活化比喻和代码示例,详细说明了每种智能指针的特点、适用场景和使用注意事项,并给出了新手避坑指南。最后总结建议优先使用make_unique和make_shared创建智能指针,根据所有权需求选择合适的智能指针类型。

2025-10-16 11:04:55 557

原创 C++ Lambda 表达式:给 “计算机菜鸡” 的大白话详解

C++ Lambda表达式是一种匿名函数,可以像"临时工"一样直接嵌入代码中使用。其基本结构为:捕获规则->返回值{代码}。核心功能包括:1)可捕获外部变量(值捕获或引用捕获);2)作为参数传递给STL算法(如sort、for_each);3)简化一次性函数逻辑。相比独立函数,Lambda更简洁灵活,特别适合需要临时逻辑的场景,但需注意值捕获默认不可修改(需加mutable),引用捕获要注意变量生命周期。典型应用包括自定义排序、遍历处理数组元素等。

2025-10-16 09:29:31 776

原创 【C++ 学习】单词统计器:从 “代码乱炖” 到 “清晰可品” 的复习笔记

这篇笔记记录了一个C++新手重构文本文件单词统计工具的过程。作者通过重命名函数/变量、添加详细注释、记录踩坑经验等方式,将原本"能跑就行"的代码改造成更易读、易维护的版本。核心改进包括:1) 使用描述性命名(如ProcessTextFileAndExtractWords);2) 完善类结构(Word作为基础类,WordSet/WordMap分别处理去重和计数);3) 修复关键bug(如分隔符处理、空行判断等);4) 添加辅助函数和错误处理。笔记还总结了5个常见错误及解决方案,为后续优化提

2025-10-13 18:14:45 826

原创 const string getWord() ;和 string getWord() const ;是一样的效果吗

C++中const修饰位置不同作用不同:const string getWord()表示返回常量字符串,外部无法修改(但返回副本时意义有限);string getWord() const是常成员函数,保证不修改类成员变量,可由const对象调用。关键区别在于前const限制返回值,后const限制函数行为。

2025-10-13 15:49:13 541

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除