
C++11
文章平均质量分 68
CoderIsArt
内视、慎独、无悔代码人生;数字化、人性化、科学化;自省的底层程序员,努力与世界同步。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解释器模式(Interpreter Pattern)及C++实现
解释器模式是一种行为设计模式,用于定义语言的文法规则并提供解释执行功能。该模式通过抽象表达式、终结符表达式和非终结符表达式等角色构建语法树,实现对特定领域语言的解释。典型应用包括数学表达式计算、SQL解析和正则表达式处理等。文中提供了C++实现示例:一个数学表达式计算器(支持变量、加减乘除运算)和一个简化版SQL条件解析器(支持AND/OR/NOT逻辑和比较运算)。解释器模式优点在于易于扩展文法,但缺点是复杂文法难以维护且执行效率较低。该模式适用于需要解释简单语言且效率要求不高的场景。原创 2025-08-08 14:31:15 · 165 阅读 · 0 评论 -
命令模式(Command Pattern)及C++实现
命令模式是一种行为设计模式,它将请求封装为对象,实现调用者与接收者的解耦。该模式包含命令接口、具体命令、接收者、调用者和客户端五个核心角色。摘要展示了五个经典应用场景的C++实现:1)文本编辑器的撤销/重做;2)智能家居遥控器;3)支持撤销的交易系统;4)线程池任务调度;5)游戏输入处理。命令模式优势包括解耦、支持撤销/重做、事务处理、灵活扩展和队列/日志功能,适用于需要请求封装、解耦和操作记录的复杂系统设计。原创 2025-08-08 11:41:32 · 160 阅读 · 0 评论 -
职责链模式应用场景与C++实现
职责链模式是一种行为设计模式,通过将多个处理对象连接成链,使请求沿着链条传递直到被处理。该模式包含抽象处理器、具体处理器和客户端三个核心组件,具有动态组合流程、降低耦合度等特点。典型应用场景包括多级日志过滤、订单处理流程、游戏事件处理等。文中以C++实现的采购审批系统为例,展示了不同层级审批人(经理、总监、CFO、董事会)按金额分级的处理流程。该模式支持功能增强和模板化实现,建议结合工厂模式构建责任链,并可通过组合模式、策略模式等进行扩展,特别适用于需要动态调整处理流程的场景。原创 2025-08-07 21:05:40 · 293 阅读 · 0 评论 -
代理模式(Proxy Pattern)及其应用场景
代理模式是一种结构型设计模式,通过代理对象控制对目标对象的访问。它主要特点包括:控制访问权限、添加额外功能(如日志、缓存)、延迟初始化资源密集型对象,以及作为远程对象的本地代表。代理模式分为虚拟代理(延迟加载)、保护代理(访问控制)、远程代理和智能引用代理等类型。示例代码展示了代理模式在图像加载、数据库访问控制、资源引用计数和远程服务调用等场景的应用。与装饰器模式不同,代理模式着重于访问控制而非行为扩展,适用于延迟加载、权限管理、远程服务代理等场景。原创 2025-08-06 15:33:02 · 352 阅读 · 0 评论 -
享元模式(Flyweight Pattern)及其应用场景
享元模式是一种优化内存使用的结构型设计模式,通过共享相似对象来减少资源消耗。其核心是将对象状态分为内部状态(可共享的不变部分)和外部状态(不可共享的变化部分),并使用工厂管理共享对象。该模式适用于需要处理大量相似对象的场景,如文字处理、游戏开发和图形渲染。示例展示了在C++中实现享元模式的三种应用:字符对象共享、树木类型共享和围棋棋子共享,通过工厂统一管理对象创建和复用,有效降低了内存占用。实现关键在于合理分离内外状态,并由客户端维护外部状态。原创 2025-08-06 15:20:40 · 221 阅读 · 0 评论 -
外观模式(Facade Pattern)及其应用场景
外观模式是一种简化复杂系统的设计模式,通过提供统一的高层接口来降低子系统使用难度。该模式具有解耦客户端与子系统、提高易用性等优点,适用于系统集成、多层架构等场景。文中通过计算机启动、家庭影院和编译器三个C++示例,展示了外观模式的具体实现方式:分别为复杂子系统封装简洁接口(如ComputerFacade统一管理CPU/内存等组件),使客户端调用更简单。该模式常与其他设计模式结合使用,既能隐藏系统复杂性,又保留直接访问子系统的灵活性。原创 2025-08-06 14:32:46 · 279 阅读 · 0 评论 -
组合模式(Composite Pattern)及其应用场景
组合模式是一种结构型设计模式,用于表示"部分-整体"的树形层次结构。它通过将对象组合成树状结构,使得用户对单个对象和组合对象的使用具有一致性。模式包含抽象构件(Component)、叶子构件(Leaf)和容器构件(Composite)三个核心角色,适用于文件系统、UI组件、组织结构等需要处理树形数据的场景。优点是能清晰定义层次结构、统一处理简单和复杂元素,但设计较复杂且可能违反依赖倒置原则。文中提供了C++实现的4个示例(文件系统、图形绘制、组织架构和UI组件),展示了如何应用该模式处理原创 2025-08-06 14:16:48 · 329 阅读 · 0 评论 -
桥接模式(Bridge Pattern)及其应用场景
桥接模式是一种结构型设计模式,它将抽象与实现分离,使两者能独立变化。该模式适用于存在多个独立变化维度的系统,可避免继承带来的复杂性。通过定义抽象类和实现类接口,桥接模式提高了系统扩展性,实现细节对客户透明。文中提供了三个C++实现案例:图形绘制系统(形状与渲染器)、设备远程控制(遥控器与设备)、日志系统(日志类型与输出方式),展示了如何将抽象部分与实现部分解耦。该模式虽然增加了设计复杂度,但能有效处理多维度变化需求。原创 2025-08-05 15:33:38 · 178 阅读 · 0 评论 -
如何选择结构型模式?
摘要:适配器模式是一种结构型设计模式,用于解决接口不兼容问题。它通过将现有接口转换为目标接口,使不兼容的类能够协同工作。核心角色包括目标接口、被适配者和适配器,可通过类继承或对象组合实现。适配器模式适用于系统集成、旧系统升级等场景,能提高代码复用性但可能增加系统复杂性。C++示例展示了类适配器(多重继承)和对象适配器(组合)的实现方式,以及STL中的适配器应用。该模式在数据库驱动、日志框架等实际场景中广泛应用。原创 2025-08-05 15:00:04 · 239 阅读 · 0 评论 -
适配器模式的三种C++实现
适配器模式是一种结构型设计模式,用于解决接口不兼容问题。它通过转换接口使不兼容的类能够协同工作。文章介绍了三种C++实现方式:1)类适配器通过继承实现;2)对象适配器通过组合实现;3)参数化适配器通过运行时配置实现。关键组件包括目标接口、被适配者和适配器。每种实现方式各有优缺点:类适配器可重写行为但需多重继承;对象适配器更灵活但增加间接层;参数化适配器最灵活但接口较复杂。典型应用场景包括系统集成、第三方库适配和接口标准化。实现时需注意资源管理和线程安全。原创 2025-07-29 14:43:25 · 448 阅读 · 0 评论 -
Lazy Initialization (延迟初始化)
摘要: 延迟初始化(Lazy Initialization)是一种优化性能的设计模式,通过推迟对象的创建或昂贵计算直到首次真正需要时执行。其核心包括按需创建、线程安全及结果缓存,适用于高开销对象或不确定是否使用的资源。C#通过Lazy<T>类简化实现(自动处理线程安全),C++可使用std::call_once或双重检查锁定(需手动处理同步)。虽能减少资源浪费,但会首次访问时增加开销,且需注意线程安全与初始化错误的延迟暴露。适用于虚拟代理、惰性求值等场景,但需权衡可预测性与性能收益。原创 2025-07-23 09:51:44 · 312 阅读 · 0 评论 -
创建型设计模式
本文介绍了五种主要的创建型设计模式及其C++实现:1) 单例模式确保类唯一实例;2) 工厂方法模式通过子类决定实例化对象;3) 抽象工厂模式创建相关对象家族;4) 建造者模式分离复杂对象构建与表示;5) 原型模式通过复制创建新对象。每种模式都包含角色关系图和完整的C++代码示例,展示了线程安全单例、工厂方法实现、抽象工厂应用、建造者流程和原型克隆等关键技术实现。这些模式为对象创建提供了灵活、可复用的解决方案。原创 2025-06-11 21:14:46 · 660 阅读 · 0 评论 -
Abstract Factory 模式与C++/C#的代码实现
设计模式:抽象工厂原创 2025-04-29 21:43:51 · 678 阅读 · 0 评论 -
浮点数Float概述
浮点数介绍原创 2025-03-20 13:45:33 · 829 阅读 · 0 评论 -
以光盘读写系统演示面向对象设计的原则与方法
面向对象设计原则与方法 光盘存储系统原创 2025-03-19 22:08:38 · 1181 阅读 · 0 评论 -
C++中函数模板与类模板的简单使用
C++的函数模板与类模板的简单使用原创 2025-03-19 21:46:40 · 487 阅读 · 0 评论 -
用C++实现一个基于模板的观察者设计模式
观察者模式 C++模板实现原创 2025-01-17 15:49:35 · 705 阅读 · 0 评论 -
Reference Counter Pattern(引用计数模式)
引用计数模式原创 2025-01-16 16:22:15 · 329 阅读 · 0 评论 -
单例模式与QT中的C++实现
单例模式在Qt中的实现原创 2024-11-21 10:42:20 · 458 阅读 · 0 评论 -
工厂方法模式与抽象工厂模式
工厂模式与抽象工厂模式C++实现原创 2024-10-29 15:01:45 · 1573 阅读 · 0 评论 -
C++实现MVC模式,用来显示激光器的当前状态:开或关,输出功率以及工作频率
用C++实现一个MVC模式原创 2024-10-25 11:16:53 · 581 阅读 · 0 评论 -
C++简单动态数组缓存的管理实现
动态数组缓存管理实现原创 2024-10-14 11:50:44 · 126 阅读 · 0 评论 -
C++内存池的实现
C++内存池的实现原创 2024-10-12 18:20:13 · 308 阅读 · 0 评论 -
QT中基于QMatrix4x4与QVector3D的三维坐标变换类实现
QT中实现坐标变换类原创 2024-09-25 17:35:13 · 688 阅读 · 0 评论 -
半导体设备系列(2) 半导体设备与工厂控制仿真器Demo编写
基于C/S架构用C++编写半导体设备仿真器与工厂控制仿真器原创 2024-09-11 11:05:59 · 472 阅读 · 0 评论 -
c++标准库中对文件读写的函数与类
文件读写的C++标准库原创 2024-09-07 17:25:06 · 550 阅读 · 0 评论 -
架构设计(4)面向服务架构SOA与C++模拟实现
面向服务架构SOA 实践原创 2024-08-25 11:59:04 · 1483 阅读 · 0 评论 -
设计模式---简单工厂模式
设计模式之简单工厂模式原创 2024-08-16 21:50:11 · 678 阅读 · 0 评论 -
设计模式---构建者模式(Builder Pattern)
设计模式中的构建模式实现原创 2024-08-16 19:46:43 · 842 阅读 · 0 评论 -
用QStateMachine写一个状态机模拟单个任务运行控制
QStateMachine 单任务运行控制原创 2024-08-13 19:55:51 · 308 阅读 · 0 评论 -
用霍夫变换算法来识别图像中圆形的轮廓cv::HoughCircles
霍夫变换 圆形轮廓检测 cv::HoughCircles原创 2024-08-06 22:52:06 · 702 阅读 · 0 评论 -
QGraphicsItem 中的mapRectToScene 详解与用法
QGraphicsItem mapRectToScene 图元排序原创 2024-06-20 10:38:53 · 657 阅读 · 0 评论 -
QCAD系列(1)---qcad程序框架技术要点
qcad 框架介绍原创 2024-06-04 19:18:23 · 1564 阅读 · 0 评论 -
Hamiton图系列文章 (4) :Hamilton图判定充要条件优化与实现
Hamilton 充要条件 上三角矩阵原创 2022-10-13 11:40:01 · 373 阅读 · 0 评论 -
从Python整数变量内存大小占用28字节谈起
在 CPython 中,所有可变大小的对象(如列表、元组、字符串等)都以相同的结构开始,其中包含对象的引用计数和类型信息。数组用于存储整数值,而不再需要额外的字段来存储整数值。这样的设计使得整数对象的内存占用更加高效,同时也提高了整数对象的操作效率。实现了对象的通用性和灵活性,使得不同类型的对象可以共享相同的基本属性和行为。指向对象的类型对象,用于标识对象的类型信息,如整数、字符串、列表等。表示对象的引用计数,用于跟踪对象的引用情况,当引用计数为。表示可变部分中的项目数量,例如,对于列表对象,原创 2024-05-08 19:10:56 · 799 阅读 · 0 评论 -
C++中Using关键词的三种应用
class DerivedDouble: public Derived { //公有继承,所以Derived的子类还是能够访问n1。//将我们常用的std命名空间展开,以后cout, endl等就不需要再用std::来修饰。//错误,n2是Base类的私有变量,不能访问。typedef存在一些限制。class Derived: private Base{ //私有继承。//用别名替换原始类型。在当前域中引入了父类的保护成员,在当前域中可以访问。在C++11中,可以直接使用using重新定义模板。原创 2024-05-08 15:33:46 · 492 阅读 · 0 评论 -
QT 多线程编程系列5:QRunnable用法
qt原创 2023-03-09 16:02:38 · 238 阅读 · 0 评论 -
QT 多线程编程系列4:MovToThread用法
qt movetothread原创 2023-03-09 14:59:34 · 156 阅读 · 0 评论 -
QT 多线程编程系列3:QTConcurrent用法
qt 多线程原创 2023-03-09 11:28:40 · 655 阅读 · 1 评论 -
QT 多线程编程系列2:继承QThread用法
QT 多线程 QThread原创 2023-03-09 10:00:37 · 282 阅读 · 0 评论