- 博客(17)
- 收藏
- 关注
原创 C++ 开闭原则
这意味着当需求变化时,应通过新增代码(如新增类或方法)来扩展功能,而非直接修改现有代码,从而降低维护成本并提高系统稳定性。以下是一个计算器程序的改进案例,展示了如何从违反开闭原则的设计改进为符合原则的设计。定义运算接口,具体运算由派生类实现。新增运算时,仅需新增派生类,无需修改现有代码。通过这种设计,系统能够灵活应对需求变化,同时保持代码的稳定性和可维护性。原始计算器类直接通过条件判断处理不同运算,新增运算需修改。方法,可能引入错误,且需重新测试所有分支。方法,违反开闭原则。
2025-11-28 09:59:29
258
原创 C++ 模拟基于 IPC(进程间通信)的诊断服务系统
用C++ 代码模拟了一个 基于 IPC(进程间通信)的诊断服务系统(SDM - Service Diagnostic Module),其结构清晰、模块化良好,使用了现代 C++ 的特性(如 unique_ptr、function、bind 等),并体现了典型的 服务器-客户端模型。
2025-11-24 17:29:09
636
原创 什么是冒烟测试?
冒烟测试的核心就是快速验证软件最基础、最核心的功能是否能跑通,就像检查新买的电器插电后会不会“冒烟”(出故障)一样。它的本质是**“门禁测试”**,目的是在投入大量时间做详细测试前,先过滤掉那些严重到根本无法使用的问题,避免浪费资源。
2025-11-21 13:49:43
260
原创 C++ 非模板的右值引用
特性非模板右值引用 (Type&&模板万能引用 (T&&本质将对象转为右值引用的函数直接声明的右值引用依赖类型推导的右值引用值类别右值 (xvalue)右值引用类型可能是左值/右值引用(自动推导)绑定对象无(返回新引用)只能绑定右值可绑定左值或右值典型用途触发移动语义移动构造/赋值的参数完美转发、泛型代码→ 把x变成右值(告诉编译器:“可移动我”)。Type&&→ 只能接右值的"专属通道"。模板T&&→ 智能通道(左值/右值都能进,自动识别)。
2025-11-20 23:00:23
283
原创 C++ 使用std::function和bind将一个强耦合的系统设计转变为松耦合的系统设计
这段代码展示了如何通过回调机制(特别是C++中的std::function)将一个强耦合的系统设计转变为松耦合的、更灵活的设计。
2025-11-19 15:21:23
583
原创 C语言实现线程池的疑问
问题回答只读busyNumliveNum需要加锁吗?需要!不加锁会怎样?数据竞争 → 未定义行为(可能读错、死循环、崩溃)volatile能替代锁吗?不能!加锁只是为了互斥吗?不,还为了内存可见性和禁止重排序💡黄金法则任何被多个线程共享的变量,只要有一个线程写,所有读写操作都必须通过同步机制保护。不仅是正确的,而且是必须的!问题解释为什么 Core1 可能读到旧值?因为 Core0 的修改还在自己的缓存中,未同步到主存或其他核心缓存;且编译器可能优化掉重复读取。MESI 协议不能解决吗?
2025-11-16 20:11:56
854
原创 C++ std::enable_shared_from_this<T>的作用
std::enable_shared_from_this<T>的作用及代码举例
2025-11-11 18:21:04
260
原创 C++17新特性 std::optional 使用详解
摘要:C++17引入的std::optional提供了一种安全的方式表示可能存在的值,替代了传统的空指针用法。它通过显式处理"无值"状态,强制开发者检查值是否存在,避免空指针异常。主要特性包括:创建可能包含值的对象、判断值是否存在、安全取值(value()/value_or())、以及在函数中返回可能失败的结果。典型应用场景包括查找函数、解析操作等可能返回无效结果的情况,使代码更安全可靠。
2025-07-17 20:40:11
283
原创 2021-02-22 力扣70题 爬楼梯
1. 题目链接https://leetcode-cn.com/problems/climbing-stairs/2. 代码
2021-02-22 16:37:29
513
原创 2021-02-21 力扣461题 汉明距离
力扣461题 汉明距离汉明距离:以理查德·卫斯里·汉明的名字命名的。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。解题思路:x,y先进行一次异或(^)运算得值val,从而使得值val包含的x,y的所有位的1,当val不为0时,让val与1进行与(&)运算,从而得出1的个数,然后用count统计1的个数,然后再对val进行右移(>>)运算,清除二进制位最后一位已经统计过的1,当v
2021-02-21 19:58:22
1137
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅