自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用状态机管理多阶段任务:让失败、重试与恢复有据可依

本文阐述在复杂任务中使用有限状态机替代简单布尔值的必要性,通过C++示例展示如何用枚举定义状态与事件,实现安全的状态转换。强调状态、错误与重试策略应分离,状态需明确决定操作权限与恢复路径。指出状态机不自动保护副作用,需结合持久化与幂等恢复逻辑,并说明并发下需额外同步机制。最后提醒:状态表仅规范路径,不能解决竞争问题,且状态名称应保持稳定以支持版本兼容。

2026-10-31 11:20:03 494

原创 序列化与反序列化:把 C++ 对象可靠地保存下来

本文详解C++对象序列化与反序列化原理,强调需区分内存布局与存储格式,避免直接保存对象内存。以Qt6 Core实现JSON格式的可靠持久化:定义数据契约(含版本、字段校验),通过QJsonDocument编码,严格验证类型、范围与结构,确保反序列化安全。关键实践包括:编码与写入分离、先检查类型再转换、临时对象构建后提交、使用QSaveFile保障写入原子性。对比二进制格式需约定魔数、字节序、长度单位与版本兼容策略。强调反序列化必须校验边界(截断、越界、未知字段等),并指出非持久化成员无需更新格式。示例展示可

2026-10-31 09:27:10 239

原创 数据库存储基础:理解表结构、主键、事务与 BLOB

本文通过SQLite3内存数据库示例,系统讲解关系型数据库核心概念:数据持久化、表结构与模式设计、主键外键约束、NULL与零值区别、事务ACID特性、索引优化、BLOB字段应用及C++安全操作。重点强调对象与数据库的显式映射、参数绑定防注入、空值处理、复合唯一性约束与业务语义分离。示例验证了外键约束、事务回滚、聚合函数对NULL的处理,揭示“行号非稳定身份”“查询无序”“BLOB不自动解析”等关键认知误区,指导开发者构建可靠、可维护的数据层逻辑。

2026-10-31 09:21:28 330

原创 C++ 接口与插件设计:从工厂注册到 Qt 动态插件

本文通过C++17与Qt6示例,阐述如何设计可扩展的功能入口:分离接口、工厂、注册表与动态加载职责。核心思想是通过抽象接口定义能力,工厂创建实例,注册表管理ID映射,实现调用方与具体实现解耦。静态注册适用于内部扩展,动态插件则支持运行时发现与独立部署,但需注意ABI兼容性、生命周期管理及可用性验证。强调稳定ID、所有权清晰与错误处理的重要性,避免过度设计,建议从功能需求出发合理选择架构。

2026-10-29 10:48:34 114

原创 C++ 虚函数与多态:从基类引用到正确的对象销毁

本文通过C++17多态示例,讲解虚函数实现运行时多态的机制,涵盖纯虚函数、override、虚析构函数及对象切片等核心概念。使用Shape基类与Circle、Rectangle派生类演示动态绑定,强调通过引用调用虚函数可自动选择正确实现。结合智能指针管理生命周期,说明虚析构函数对安全删除的重要性,并指出常见陷阱如切片、构造期虚调用、默认参数差异等。学习目标包括理解多态原理、正确使用关键字、识别类型问题,以及设计可扩展接口。

2026-10-27 18:59:38 383

原创 AOI 第一步:用 C++ 和 OpenCV 完成图像读取、灰度化与二值化

本文详解AOI(自动光学检测)中图像预处理的核心步骤:使用C++与OpenCV实现从彩色图到黑白前景图的转换。通过imread读取图像,cvtColor转灰度(基于人眼敏感度加权),再用threshold结合大津法(Otsu)自动二值化,实现高效、鲁棒的前景分割。代码完整可运行,强调检查空矩阵、注意BGR顺序、避免手动阈值依赖等关键细节。三步操作——读图、灰度化、二值化——是缺陷检测的基石,为后续轮廓提取与分析提供可靠输入。

2026-10-22 16:41:11 381

原创 C++ 机器视觉入门:从零搭建 AOI 开发环境(OpenCV + CMake)

本文面向有C++基础的初学者,手把手指导如何从零搭建可复用的AOI(自动光学检测)开发环境。通过理解AOI应用场景与工业选型原因,掌握OpenCV+ C++的性能优势,并完成环境安装(Windows/Ubuntu)、CMake工程组织及首个读图显示程序的编译运行。重点解决路径错误、链接失败、窗口闪退等常见坑点,实现“装环境→建工程→跑代码”闭环,为后续图像处理算法开发打下坚实基础。

2026-10-21 14:34:50 246

原创 Qt 线程迁移机制完整实战指南(moveToThread)

本文系统讲解了Qt中基于moveToThread()的线程管理方案。文章首先介绍了线程亲和性概念,指出QObject默认依附创建它的线程,而UI控件必须运行在主线程。

2026-07-08 23:28:34 583

原创 Qt 有限状态机 QStateMachine 完整实战指南

本文摘要:Qt的QStateMachine状态机框架是解决多模式互斥切换场景(如编辑/查看模式切换、分步流程等)的标准化方案。文章系统介绍了状态机的核心概念(QState、QSignalTransition等)、完整使用流程,并通过PCB编辑模式切换案例演示了状态初始化、生命周期绑定和信号跳转配置。

2026-07-08 23:19:37 487

原创 面试C++易错点总结

C++新手常见6大坑点及避坑指南

2026-04-17 15:58:08 386

原创 吃透C++设计模式:从基础到实战,新手也能轻松上手

本文系统介绍了23种C++设计模式,分为创建型、结构型、行为型三大类。创建型模式(单例、工厂、建造者等)关注对象创建,解耦创建与使用;结构型模式(适配器、装饰器、代理等)优化对象组合,实现功能复用;行为型模式(观察者、策略、模板方法等)规范对象交互,灵活分配职责。 文章通过具体代码示例(如单例模式日志系统、工厂模式文档编辑器、观察者模式订单通知等)详细解析了各模式的应用场景和实现方法,强调设计模式的核心价值在于解耦、复用和扩展,而非语法技巧。 作者建议开发者理解模式解决的问题本质,结合SOLID原则灵活运用

2026-04-17 14:48:08 467

原创 从内存到底层:C++ 有符号 / 无符号字符混用,为什么总是踩坑?

如果你在写嵌入式、Qt 图像处理、网络解析、MAVLink 数据解包,这篇里的坑,基本就是你线上 80% 诡异 bug 的来源。

2026-04-14 16:41:51 664

原创 你真的懂链表和数组吗?从内存本质到算法应用的深度解析

本文深入剖析数组和链表的底层差异与应用场景。

2026-01-14 16:13:00 723

原创 避坑指南:Qt 中 Lambda 表达式崩溃原因与高效使用实践

Lambuda常见错误解析

2026-01-13 17:10:53 1212

原创 每日一算:合并 K 个升序链表

每日一算,锻炼思维开发能力。

2025-11-20 11:53:32 947

原创 解析串口频率受限原因及优化方案:提升串口收发效率实战

一篇文章分析介绍如何提高串口效率。

2025-11-19 18:26:17 1656

原创 每日一算:找出字符串中的低频率字符

每日一算锻炼思维开发能力。

2025-11-19 15:37:59 434

原创 C/C++ 指针管理完全指南:从错误到最佳实践

一篇文章帮你科学管理指针,避免内存泄漏。

2025-11-18 13:58:04 934

原创 每日一算:两数相除

每日一算,锻炼思维能力。

2025-11-18 10:05:22 321

原创 Qt详解:使用 Qt Linguist 实现多语言切换

一篇文章帮助你快速实现一键翻译功能。

2025-11-17 18:25:51 1136

原创 每日一算:删除链表的倒数第 N 个结点

每日一算,锻炼思维开发能力。

2025-11-17 15:05:34 485

原创 C++四种类型转换

介绍C++的四种类型转换以及常见误区。

2025-10-30 12:01:08 885

原创 每日一算:H₂O 生成(线程同步问题)

每日一算,锻炼思维开发能力。

2025-09-19 17:31:33 883

原创 原子操作:多线程编程

本篇文章详细介绍:多线程编程中的基石——原子操作,帮助你更好的构建线程并发结构。

2025-09-17 20:05:03 847

原创 每日一算:打家劫舍

每日一算锻炼思维开发能力。

2025-09-12 11:35:46 882

原创 每日一算:最大数

每日一算,锻炼思维开发能力。

2025-09-10 16:21:38 986

原创 每日一算:分发糖果

每日一算锻炼思维开发能力。

2025-09-09 20:52:03 898

原创 每日一算:有效的括号

每日一算,锻炼思维及开发能力。

2025-09-09 09:00:00 902

原创 每日一算:电话号码的字母组合

每日一算锻炼思维及编码能力

2025-09-08 23:34:42 994

原创 数据结构基础之队列:数组/链表

队列(数据结构核心原理、C/C++ 实现与典型应用),帮助你快速掌握和进阶。

2025-09-05 17:08:35 1406

原创 每日一算:颜色分类

每日一算,锻炼思维开发能力。

2025-09-05 13:43:17 1114

原创 每日一算:圆桌进餐问题

每日一算,锻炼思维开发能力。

2025-09-04 10:21:46 770

原创 每日一算:盛最多水的容器

每日一算,锻炼思维及开发能力。

2025-09-03 16:37:45 1001

原创 每日一算:整数反转问题

整数反转是一个经典的编程问题,不仅考察基本的数字操作能力,还涉及到边界条件处理和性能优化。本文将详细解析这一问题,并提供多种 C++ 解法。问题描述

2025-09-02 11:23:30 626

原创 C++多线程编程实战:从入门到精通的7道经典题目

多线程编程是现代C++开发中的核心技能之一。本文通过7道精心设计的题目,覆盖多线程编程的常见场景,帮助你掌握线程同步、通信、管理等关键技能。

2025-09-01 20:08:03 1983

原创 Qt线程提升:深度指南与最佳实践

详细介绍Qt线程操作,适合进阶与学习。

2025-08-30 20:00:56 726

原创 每日一算:N字形变换

每天一道算法,锻炼思维能力。

2025-08-08 11:30:43 335

原创 每日一算:爬楼梯问题的三种解法

经典算法,每日一算,锻炼思维能力。

2025-08-06 14:57:24 1574

原创 Qt 音频播放全攻略:常用函数、实战示例与资源获取

本文将详细介绍 Qt 音频播放的核心函数、使用场景,并推荐实用的学习资源和音频素材网站。

2025-08-05 09:57:53 1639

原创 C++ 中的重载、重写与隐藏:从语法到底层实现

本文将从语法规则到底层实现,全面解析三者的差异,并深入探讨虚函数表(vtable)的工作原理,让你彻底掌握面试常问问题。

2025-08-04 15:34:07 1905

空空如也

空空如也

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

TA关注的人

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