自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【qt】各种窗口、系统相关

本文介绍了Qt框架中的窗口部件、系统相关功能及网络编程实现。主要内容包括:1. 浮动窗口QDockWidget的创建与停靠位置设置;2. 对话框QDialog的使用及模态/非模态特性;3. 标准对话框(消息框、颜色选择、文件操作等)的实现方法;4. 事件处理机制和信号槽原理;5. 多线程编程中的线程安全与锁机制;6. 网络编程实现,包括UDP/TCP通信案例和HTTP客户端开发。通过具体代码示例,详细讲解了Qt在GUI开发中的核心功能实现方式,特别强调了信号槽机制在多线程和网络编程中的重要作用。

2025-08-27 09:30:00 940

原创 【cmake】msvc、mingw

本文详细介绍了使用CMake构建Qt项目的配置方法,涵盖MSVC和MinGW两种编译器环境。主要内容包括:1)创建构建目录与CMake配置命令,重点说明生成器选择(-G参数)和Qt路径设置;2)提供完整的CMakeLists.txt示例,展示Qt项目的基础配置、文件收集和库链接;3)针对MinGW环境特别说明资源文件处理配置;4)给出两种环境下的构建命令(MSVC需指定工具链版本,MinGW需设置编译器路径)和运行方式。文章还包含环境变量设置建议和编译器检测代码,帮助开发者解决Qt版本与编译器兼容性问题。通

2025-08-14 14:30:00 1088

原创 【qt】qt demo、模型、视图、代理

本文介绍了使用Qt框架实现好友列表功能的开发过程。首先创建了一个继承自QListView的FFriendListWidget类,通过QStandardItemModel管理好友数据,并设置代理类FFriendListWidgetDelegate处理样式显示。随后实现了从JSON文件动态加载好友数据的功能,包括昵称、签名和头像信息。当双击好友列表项时,会触发创建聊天窗口的功能。文章还详细讲解了Q_DECLARE_METATYPE宏的作用、QModelIndex的使用方法,以及static constexpr成

2025-08-14 09:30:00 589

原创 【qt】qss样式、qrc、绘图API

本文介绍了Qt样式表(QSS)的两种实现方式和常用选择器应用。通过qrc文件管理样式文件和使用Qt Designer直接写入样式两种解耦方法,详细讲解了类型选择器、ID选择器和并集选择器的使用场景。文章还涵盖了子控件选择器、伪类选择器、盒模型(Box Model)等核心概念,并提供了按钮、复选框、列表项等控件的样式定制示例,包括渐变色设置和绘图API的调用时机。这些技术要点可以帮助开发者实现Qt应用程序的界面美化与个性化定制。

2025-08-13 14:30:00 667

原创 【qt】基础知识(常用控件、信号与槽、布局管理器)

本文介绍了Qt框架中常用控件与布局管理器的核心功能与应用方法。首先阐述了Qt中的信号与槽机制,重点讲解了lambda表达式在槽函数中的使用技巧和变量捕获机制。随后详细说明了按钮类控件(QPushButton、QRadioButton、QCheckBox)的属性配置与事件处理,以及显示类控件(QLabel、QLCDNumber、QProgressBar)的数据展示方式。在输入类控件部分,涵盖了QLineEdit、QTextEdit、QComboBox等交互元素的使用场景和信号处理。对于多元素控件,重点介绍了Q

2025-08-13 09:30:00 1690

原创 【项目】仿muduo库one thread one loop式并发服务器HTTP协议模块

本项目实现了一个高性能C++ HTTP服务器,包含五个核心模块:1. Util模块提供URL编解码、文件读写等基础功能;2. HttpRequest/Response模块处理请求和响应数据结构;3. HttpContext模块管理请求解析状态;4. HttpServer模块集成TCP服务、路由映射和请求分发。服务器支持GET/POST/PUT/DELETE方法,处理静态资源和动态请求,具备长连接、超时管理等功能。测试验证了长连接、错误请求处理、大文件传输等场景,在5,000并发下实现5,369 QPS的吞吐

2025-06-25 11:40:34 1116

原创 【项目】仿muduo库one thread one loop式并发服务器SERVER模块(下)

本文详细介绍了基于C++和Linux的仿muduo库one thread one loop式并发服务器的设计与实现。文章首先讲解了Connection模块的功能设计、类接口实现和调试过程,包括套接字管理、事件监控、缓冲区操作等核心功能。接着阐述了Acceptor模块对监听套接字的管理机制,以及LoopThread和LoopThreadPool模块的线程池实现。最后整合为TcpServer模块,实现了完整的服务器框架,并在此基础上构建了回显服务器EchoServer。文章还提供了WebBench性能测试方法和

2025-06-19 21:00:45 1162

原创 【项目】仿muduo库one thread one loop式并发服务器SERVER模块(上)

本文介绍了一个基于Linux的onethreadoneloop并发服务器框架的设计与实现。首先讲解了Buffer缓冲区的设计,使用vector<char>作为底层容器解决网络数据传输问题,并详细解析了其读写操作逻辑。接着介绍了日志宏的实现,支持多级别日志输出。然后阐述了Socket套接字模块的封装,简化了网络编程操作。文章重点讲解了事件驱动的核心组件:Channel模块负责描述符事件管理,Poller模块封装epoll实现高效IO多路复用,EventLoop模块整合前两者实现单线程事件循环。最后整合了定时器

2025-06-16 16:13:09 1104

原创 【项目】仿muduo库one thread one loop式并发服务器前置知识准备

本文介绍了一个基于muduo库的主从Reactor模型高并发服务器框架的设计与实现。该框架采用OneThreadOneLoop思想,主Reactor负责监听连接,子Reactor处理通信,实现高效并发。文章详细讲解了四个关键技术点:1)利用timerfd_create和timerfd_settime实现秒级定时任务;2)设计时间轮定时器管理连接超时;3)应用正则表达式解析HTTP请求;4)实现通用any类型容器存储协议上下文。测试表明该框架可有效支持高并发场景,并提供了灵活的业务扩展接口,为构建高性能服务器

2025-06-15 14:37:27 1130

原创 【MySQL】视图、用户管理、MySQL使用C\C++连接

本文介绍了MySQL视图和用户管理的核心知识点。在视图部分,说明了视图的创建、修改、删除操作及其与基表的关联性,强调视图作为虚拟表的特点和使用限制。用户管理部分详细讲解了用户创建、权限分配、密码修改等操作,包括GRANT/REVOKE命令的使用及安全注意事项。此外,还涵盖了使用C语言API连接MySQL数据库的基本流程,包括初始化连接、执行查询、处理结果集等关键操作。文章最后简要提及了高级功能如预处理语句和事务处理,为数据库开发提供了全面指导。

2025-06-07 14:56:54 1284

原创 【MySQL】事务

数据库事务通过ACID特性保障数据一致性:原子性确保操作全完成或全回滚;一致性维护数据完整性;隔离性管理并发事务干扰;持久性保证提交数据永久有效。MySQL的InnoDB引擎支持四种隔离级别,默认可重复读通过Next-Key锁解决幻读问题。事务需明确提交或回滚,异常时未提交操作自动回滚。合理设置隔离级别可平衡数据安全与并发性能。

2025-05-25 15:00:00 1240

原创 【MYSQL】索引、存储引擎

本文全面剖析MySQL索引的核心机制与优化策略。从索引缺失导致的查询性能问题切入,详解索引如何通过B+树结构提升检索效率,对比B树与B+树的优劣,并分析InnoDB的聚簇索引与MyISAM的非聚簇索引实现差异。结合磁盘交互原理,阐述MySQL以Page为单位的IO机制及内存管理逻辑。此外,系统讲解主键、唯一、普通及全文索引的创建、删除操作,总结索引设计原则(如最左匹配、覆盖索引)及实战优化建议。通过理论结合案例,帮助开发者深入理解索引底层逻辑,合理设计高效数据库方案。

2025-05-25 10:34:29 910

原创 【MySQL】表的内连和外连

本篇文章主要介绍了数据库中的表连接操作,包括内连接和外连接。内连接通过INNER JOIN关键字实现,用于筛选两个表的笛卡尔积,是开发中最常用的连接方式。外连接分为左外连接和右外连接,分别通过LEFT JOIN和RIGHT JOIN实现。左外连接会显示左侧表的所有记录,即使右侧表没有匹配的记录;右外连接则显示右侧表的所有记录,即使左侧表没有匹配的记录。文章通过多个案例展示了如何使用这些连接方式查询数据,如显示员工信息及其部门名称,以及列出所有部门及其员工信息,包括没有员工的部门。

2025-05-21 10:30:00 2401

原创 【MySQL】复合查询(重点)

本文主要介绍了MySQL中的多表查询和子查询操作,涵盖了单表查询、多表联合查询、自连接、子查询(单行、多行、多列)、合并查询(UNION、UNION ALL)等内容。通过实际案例,展示了如何在不同场景下使用这些查询技术,如查询工资高于平均工资的员工、显示部门信息及人员数量、查找每个部门工资最高的员工等。文章还强调了解决多表查询问题的本质是将多表转化为单表,并提供了多种查询方法的对比和优化建议。最后,通过实战OJ题目,进一步巩固了多表查询的应用。

2025-05-20 14:30:00 891

原创 【MySQL】日期、字符串、数学、其它函数

本文介绍了MySQL中常用的日期、字符串和数学函数,并通过实际案例展示了其应用。日期函数包括获取当前日期、时间、时间戳,以及日期加减、日期差计算等操作。字符串函数涉及字符集设置、字符串拼接、长度计算、替换、截取等操作。数学函数包括绝对值、向上取整、向下取整、保留小数位数、随机数生成等。此外,还介绍了其他实用函数如user()、md5()、database()、password()和ifnull()。通过这些函数,用户可以高效处理数据库中的日期、字符串和数值数据,并实现复杂的数据操作需求。

2025-05-20 10:15:00 685

原创 【MySQL】基本查询,表的增删查改

本文详细介绍了MySQL中的CRUD操作(创建、读取、更新、删除),并涵盖了数据插入、查询、更新和删除的具体语法与示例。文章还探讨了如何使用WHERE条件进行数据筛选、ORDER BY进行排序、LIMIT进行分页,以及GROUP BY和HAVING进行分组和聚合统计。此外,还介绍了INSERT ... ON DUPLICATE KEY UPDATE和REPLACE等高级操作,帮助处理主键或唯一键冲突的情况。最后,文章对比了HAVING和WHERE的区别,强调了它们在查询中的不同作用。

2025-05-19 15:11:02 1255

原创 【MySQL】表的约束

详细介绍了数据库表的约束条件,如主键、复合主键、自增长、唯一键和外键等,强调了这些约束在保证数据完整性和可预期性方面的重要性。通过具体示例,博主展示了如何在创建表时应用这些约束,并解释了它们的作用和区别。此外,博主还讨论了索引的作用和唯一键与主键的区别,帮助读者更好地理解数据库设计中的关键概念。

2025-05-19 10:31:10 749

原创 【MySQL】笔记

本文详细介绍了在Ubuntu系统中配置MySQL数据库的步骤,包括修改配置文件、登录数据库、创建和管理数据库、表以及数据的操作。文章还涵盖了数据库的基本概念、字符集和校验规则、SQL语句分类、存储引擎、数据类型等内容。通过具体的命令示例,展示了如何创建数据库、表、插入数据、查询数据、修改表结构等操作。此外,文章还讨论了字符集和校验规则对数据库的影响,以及如何备份和恢复数据库。最后,介绍了MySQL中的数据类型,包括数值类型、字符串类型、日期和时间类型、枚举和集合类型,并提供了相关的操作示例。

2025-05-18 18:04:49 1049

原创 【C++算法题】滑动窗口*8

重点解析了力扣(LeetCode)上的多个算法题目,如“长度最小的子数组”、“无重复字符的最长子串”、“最大连续1的个数III”等。文章详细讲解了这些题目的算法原理,特别是滑动窗口和双指针技术的应用,并提供了相应的代码实现。通过这些题目的解析,读者可以深入理解如何利用滑动窗口优化算法,提升代码效率。

2025-05-18 14:52:45 728

原创 【Linux】利用多路转接epoll机制、ET模式,基于Reactor设计模式实现高并发服务器

摘要:本文详细探讨如何利用Reactor模式构建低耦合、高并发的网络服务器。通过封装Connection类管理套接字及缓冲区,结合epoll多路复用技术实现事件驱动模型,核心模块包括Listener(处理新连接)、HandlerConnection(处理IO事件)和Reactor(事件派发)。文章深入解析非阻塞IO与边缘触发(ET)模式的高效实现,并通过线程池优化业务处理逻辑,解决多线程环境下的竞争条件与数据一致性问题。此外,引入eventfd实现线程间唤醒机制,验证errno的线程安全性。最终通过模块化设

2025-05-18 14:52:14 1528

原创 【Linux】多路转接epoll、Linux高并发I/O多路复用

摘要:本文全面剖析Linux中epoll机制的原理与实现,详解其核心接口(epoll_create、epoll_ctl、epoll_wait)及底层数据结构(红黑树与就绪队列),对比水平触发(LT)与边缘触发(ET)模式的工作机制与适用场景。通过编写基于epoll的服务器实例,演示如何高效管理连接与数据读写,并深入探讨ET模式下非阻塞文件描述符的必要性。文章还对比select、poll与epoll的性能差异,强调epoll在高并发场景中的优势(无数量限制、事件回调机制、低内存拷贝开销)。最后,指出epoll

2025-05-14 17:24:01 1000

原创 【Linux】五种 IO 模型与阻塞 IO、多路转接 select、poll

摘要:本文系统讲解Linux中的五种I/O模型(阻塞、非阻塞、信号驱动、多路复用、异步I/O),通过钓鱼的比喻生动阐释其核心原理与效率差异,重点剖析多路复用技术select与poll的实现机制。文章结合代码实例,详解select如何通过位图监控文件描述符、poll如何优化事件管理,对比二者优缺点及适用场景(如高并发与跨平台需求)。此外,深入探讨线程同步与异步I/O的差异,并提供服务器开发中的实践案例,帮助读者理解如何高效管理I/O事件并优化资源利用率。

2025-05-14 10:20:03 1145

原创 【计算机网络】NAT技术、内网穿透与代理服务器全解析:原理、应用及实践

摘要:本文深入探讨NAT技术如何通过私有IP与全局IP的转换解决IPv4地址不足问题,并详解NAPT通过IP+端口映射实现多主机外网通信的原理。进一步解析内网穿透技术,借助云服务器(如frp工具)建立公网与内网端口映射,实现跨内网设备直接通信,并分析内网打洞在P2P通信、联机游戏等场景中的应用。对比正向代理与反向代理的核心差异,前者隐藏客户端并实现访问控制,后者负载均衡、缓存加速并保护后端服务。通过代购实例形象阐述代理概念,总结NAT与代理在网络架构中的协同与分工,为实际应用提供技术参考。

2025-05-11 10:36:44 916 1

原创 【计算机网络】网络IP层

文章摘要:本文系统解析IP网络层的核心概念与技术,涵盖公网与私有IP的区别、IP协议的功能及报文结构,详解子网划分原理与CIDR技术如何优化地址分配。探讨路由机制中NAT技术如何实现内外网通信,以及IPv6对物联网与地址短缺问题的解决意义。同时分析IP分片与组装的实现逻辑、MTU限制及避免分片的策略,并结合实例说明路由表匹配与数据包转发流程。通过理解运营商网络架构与公网IP分配逻辑,揭示互联网高效运行的基础,为网络设计与故障排查提供全面参考。

2025-05-11 10:09:55 1467

原创 【计算机网络-数据链路层】以太网、MAC地址、MTU与ARP协议

摘要:本文系统剖析数据链路层的核心机制,详解以太网技术标准及其帧结构,阐述MAC地址的作用与唯一性,并模拟局域网通信中帧转发与碰撞域的处理逻辑。通过MTU(最大传输单元)对IP、UDP、TCP协议的影响,解释数据分片与重组原理及网络性能优化策略。同时,探讨交换机划分碰撞域的原理与自学习功能,以及ARP协议如何通过广播与应答实现IP与MAC地址的动态映射,保障网络通信的精准性。全文覆盖数据链路层与网络层的关键交互,为理解局域网通信提供全面视角。

2025-05-09 19:56:41 953

原创 【计算机网络-传输层】传输层协议-TCP核心机制与可靠性保障

本文全面剖析TCP协议的核心机制,深入探讨其如何保障网络通信的可靠性。从协议段格式、确认应答、超时重传、连接管理(三次握手与四次挥手)等基础原理出发,详解流量控制、滑动窗口、拥塞控制等性能优化策略。同时解析粘包问题、延迟应答、捎带应答等实际场景中的关键技术,并通过对比TCP与UDP的差异,阐明两者的适用场景。文章结合代码示例与网络状态分析,揭示TCP异常处理与资源管理的底层逻辑,为理解高效可靠的数据传输提供系统性视角。无论是网络初学者还是开发者,均可从中获得理论与实践的深度洞见。

2025-05-09 10:04:57 997

原创 【计算机网络-传输层】传输层协议-UDP

摘要:本文系统探讨传输层核心概念,重点解析端口号的作用与分类,涵盖知名端口号的绑定规则、进程与端口号的映射机制,以及一个端口号不可多进程绑定的底层原理。深入剖析UDP协议的结构化数据特性,详解其无连接、不可靠及面向数据报的核心特点,并分析UDP缓冲区设计与数据传输限制。结合操作系统实现,阐述报文封装/解包流程及sk_buff结构对网络报文的管理逻辑,列举基于UDP的应用层协议(如DNS、TFTP)。文章通过理论与命令示例结合,帮助读者构建对传输层协议栈的全面认知,理解数据从应用层到网络层的完整传递机制。

2025-05-07 10:43:59 1313

原创 【计算机网路-应用层】HTTP协议重定向、请求方法与会话管理C++实现

摘要:本文系统解析HTTP协议核心机制,聚焦3XX重定向状态码(301/302)的应用场景与代码实现,对比GET/POST方法的参数传递差异及安全性问题。通过C++实战演示如何构建HTTP服务器,处理URL解析、动态资源响应及表单数据交互,结合Postman工具验证请求流程。文章详解Cookie在会话管理中的作用,探讨如何通过报头维持用户状态,并延伸C++与脚本语言(Python/PHP)协作的业务处理模式。内容涵盖协议原理、服务端开发及调试技巧,为网络编程提供从理论到落地的完整指南。

2025-05-06 14:28:46 1040

原创 【计算机网络-应用层】HTTP服务器原理理解、协议解析与C++编写Http实现客户端服务器端的发送请求与响应

摘要:本文深入解析HTTP协议核心原理,涵盖请求/响应格式、URL编码、状态码等关键概念,并基于C++手把手实现轻量级HTTP服务器。通过反序列化请求、构建响应报文、处理资源路径及文件类型(如HTML、图片),演示如何解析GET请求、管理Content-Type与Content-Length头部字段,并适配状态码(如200、404)。文章结合Fiddler抓包工具分析通信流程,探讨Host、User-Agent等头部字段作用,最终实现静态资源托管与动态响应生成,为网络编程与协议开发提供实践指南。

2025-05-06 13:00:12 1269

原创 【计算机网络-应用层】解析HTTP会话保持:Cookie与Session的原理与实践

本文从HTTP协议的无状态特性出发,系统讲解了Cookie与Session技术如何协作实现用户会话保持。首先剖析HTTP无状态的含义及其局限性,结合案例说明无状态对用户身份识别的挑战。随后详细解析Cookie的定义、类型(内存级与文件级)、工作原理及安全性问题,并通过代码示例演示Cookie的写入、过期时间与路径设置。进一步引入Session技术,对比其与Cookie的差异,强调Session通过服务器端存储用户信息提升安全性,结合代码实现展示Session ID的生成与验证机制。最后总结Cookie与Se

2025-05-03 11:43:46 1265 7

原创 【计算机网络-应用层】序列化、反序列化——构建网络版计算器

本文深入探讨应用层协议的设计与实践,以构建一个网络版计算器为例,详细解析如何通过自定义协议实现客户端与服务端的高效通信。文章重点讲解协议的核心作用,通过序列化(JSONcpp库)与反序列化技术将结构化数据转化为字符串传输,并设计报文头(如“len\r\n{json}\r\n”)确保数据完整性。结合Socket编程,演示TCP全双工通信的实现,以及如何通过多线程处理并发请求。代码层面分层设计会话层(TcpServer)、表示层(协议解析)和应用层(业务逻辑),最终实现支持加减乘除运算的网络服务。本文通过完整项

2025-05-03 11:36:10 1536

原创 【计算机网络】​TCP(传输控制协议)套接字,多线程远程执行命令编程​

本文深入解析TCP套接字编程的核心接口(socket、bind、listen、accept、connect),逐步实现单线程Echo服务器,并通过多进程、多线程及线程池版本优化并发能力。结合代码示例,探讨了父子进程资源管理、线程分离、任务队列等关键技术。进一步扩展服务器功能,通过白名单机制实现安全的远程命令执行(如ls、pwd),并分析recv/send与popen的用法。最后预告应用层协议设计,解决TCP粘包与全双工通信问题,为构建高可靠网络服务提供完整实践指南。

2025-04-30 10:56:29 1036

原创 【计算机网络】网络基础概念

本文系统讲解了计算机网络的核心概念与工作机制。从协议的本质与分层设计切入,解析OSI七层模型与TCP/IP五层模型的架构及其作用,阐述物理层至应用层的功能差异与协作逻辑。通过数据封装与解包流程、MAC地址与IP地址的对比,揭示网络通信中“阶段目标”与“最终目标”的实现原理。结合端口号与Socket编程接口,说明进程间通信的本质,并详解TCP/UDP协议特性及网络字节序转换。文章为理解网络协议栈、掌握基础Socket编程提供了全面的理论框架与实践指导。

2025-04-27 10:00:00 1270

原创 【计算机网络】UDP网络编程、英汉字典以及多线程聊天室编写

本文系统讲解UDP网络编程的实现与优化,涵盖三个版本迭代:V1实现多客户端回显服务器,详解套接字创建、端口绑定及数据收发核心逻辑;V2升级为英译汉字典服务器,通过加载字典文件实现单词翻译功能,解耦网络I/O与业务逻辑;V3引入线程池与在线用户管理,构建多线程聊天室,支持消息广播及客户端动态上下线,并通过锁机制解决资源竞争问题。文章还分析inet_ntoa的线程安全隐患,优化为inet_ntop,并提供完整代码示例与调试技巧,助力读者掌握UDP高并发场景下的开发要点。

2025-04-27 09:45:00 1254

原创 【计算机网络】Linux网络的几个常用命令

本文主要讲解计算机网络的几个命令

2025-04-27 09:26:04 586

原创 【Linux】多线程日志系统的封装、单例模式优化线程池代码编写

本文详细讲解了如何设计一个高效的多线程日志系统,支持日志等级分类、可变参数格式化、时间戳处理及多线程安全输出,并实现向屏幕或文件的灵活打印。通过封装日志类与宏定义简化调用接口,结合线程池技术优化任务处理流程,进一步利用单例模式实现线程池的按需加载与资源管理。文章还分析了STL容器与智能指针的线程安全性,并通过实际测试验证日志系统与线程池的协同工作效果。最终展示了如何将日志功能无缝集成到线程池中,为开发高并发程序提供可靠的监控与调试支持。

2025-04-23 10:30:00 1221

原创 【C++】输入输出流(IO流)

本文全面剖析C++的输入输出流(IO流)机制,对比C语言的scanf与printf,详解C++流的概念及其核心类(如cin、cout、文件流和字符串流)。内容涵盖标准IO流的特性、缓冲机制、错误状态处理,以及如何通过sync_with_stdio和tie优化IO性能。此外,深入探讨文件流的文本与二进制读写、自定义类型运算符重载实现序列化,并结合实例展示stringstream在结构化数据转换中的应用。文章还针对竞赛编程和实际开发场景,提供输入输出处理的实用技巧与注意事项,助力开发者高效掌握C++流的核心技术

2025-04-23 10:15:00 1123

原创 【C++】特殊类的设计、单例模式以及Cpp类型转换

本文深入探讨C++中特殊类的设计方法与类型转换机制。针对特殊类设计,详细解析如何实现禁止拷贝、限制对象创建于堆/栈、防止继承及单例模式(饿汉与懒汉),并分析其应用场景与线程安全问题。在类型转换部分,系统介绍C++四种强制转换操作符(static_cast、reinterpret_cast、const_cast、dynamic_cast)的原理与适用场景,剖析隐式转换的潜在风险(如数据截断与死循环),并对比C风格转换的缺陷。通过实例代码与场景分析,帮助开发者掌握高效、安全的编程实践,提升代码健壮性与可维护性。

2025-04-22 09:30:00 2049

原创 【C++】智能指针原理以及详解shared_ptr精简版实现

本文深入探讨C++智能指针的核心机制及其在内存管理中的应用。通过分析手动管理内存的复杂性,揭示内存泄漏的成因与危害,并介绍RAII原则如何通过对象生命周期自动化资源管理。重点解析unique_ptr的防拷贝设计、shared_ptr的引用计数实现及线程安全问题,结合代码示例演示智能指针的底层实现,包括引用计数管理、拷贝控制及线程安全优化。文章还对比了auto_ptr的缺陷与boost库的贡献,以及地址删除器最后通过实现一个支持原子操作的shared_ptr

2025-04-22 09:15:00 1301

原创 【C++】异常处理

本文系统剖析C++异常处理机制,对比C语言传统错误处理(终止程序、返回错误码)的局限性,详解throw/try/catch的使用原则与匹配逻辑,并通过代码示例演示异常栈展开、重新抛出及资源管理策略。深入探讨异常安全(避免构造函数/析构函数抛异常)与异常规范(noexcept关键字)。重点解析如何构建自定义异常体系(继承基类实现SQL、缓存、网络模块异常),结合多态与RAII机制提升程序鲁棒性。最后,分析C++标准库异常结构的不足,总结异常的核心优势(精准定位错误、简化深层调用链处理)与潜在缺陷(执行流混乱

2025-04-20 13:48:06 1085

空空如也

空空如也

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

TA关注的人

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