C++11
文章平均质量分 69
CoderIsArt
内视、慎独、无悔代码人生;数字化、人性化、科学化;自省的底层程序员,努力与世界同步。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SAM-5 核心类体系的 C++ 完整设计
本文基于SCSI架构模型SAM-5标准,提出了一个完整的C++类体系设计方案。该设计包含26个核心类,包括基础架构类(如SCSIDomain、ServiceDeliverySubsystem)、端口和地址类(如SCSIPort、LUN)、设备和逻辑单元类(如SCSITargetDevice、LogicalUnit)、功能和任务管理类(如TaskManager、DeviceServer)等。设计采用现代C++特性,使用智能指针管理对象生命周期,通过继承和组合关系体现SAM-5模型中的概念关联。文章还提供了一个原创 2025-11-22 21:24:41 · 419 阅读 · 0 评论 -
SAM-5 核心模型 C++ Demo 程序
本文实现了一个基于SCSI架构模型SAM-5标准的C++演示程序,包含五大核心模块:架构模型(SCSI设备、逻辑单元和端口关系)、命令模型(命令执行流程和状态管理)、事件通知模型、任务管理功能和任务集管理。程序通过面向对象设计封装了命令交互、任务管理和事件处理流程,支持ACA机制、命令状态流转和任务管理操作。演示程序模拟了SCSI设备间的命令交互场景,包括READ/WRITE命令执行、ACA建立与清除、逻辑单元重置等典型操作,并输出详细交互日志。该实现可作为SCSI协议栈开发的参考模型,未来可扩展传输协议支原创 2025-11-22 11:28:11 · 736 阅读 · 0 评论 -
四种对象型创建模式:抽象工厂、 build模式、原型ProtoType与单例模式
本文介绍了四种创建型设计模式:抽象工厂模式用于创建相关产品族,确保产品兼容性;建造者模式将复杂对象的构建过程分离,支持分步创建;原型模式通过克隆避免重复初始化,适合创建成本高的对象;单例模式确保全局唯一实例,提供集中访问点。每种模式都通过Python和C++代码示例展示实现,并分析了优缺点及适用场景。这些模式为对象创建提供了灵活解决方案,开发者可根据具体需求选择合适模式。原创 2025-09-30 14:47:32 · 731 阅读 · 0 评论 -
基于类的四种设计模式
本文摘要:介绍了四种常见设计模式及其实现。工厂方法模式通过子类决定实例化解耦对象创建;适配器模式使用多重继承转换不兼容接口;解释器模式构建文法类层次结构解释特定语言;模板方法模式在抽象类中定义算法骨架,允许子类重写特定步骤。每种模式均包含问题描述、解决方案、UML组件图和代码示例(Python/C++/C#),并分析了优缺点。这些模式体现了开闭原则、依赖倒置等面向对象设计原则,适用于不同场景的对象创建、接口适配、语言解释和算法封装需求。原创 2025-09-30 11:50:10 · 895 阅读 · 0 评论 -
Qt Bridge for Figma
《QtBridge for Figma设计开发协作工具详解》摘要(149字) QtBridge for Figma是连接Figma设计工具与Qt框架的官方插件,实现UI设计到QML代码的自动化转换。核心功能包括:自动生成QML代码、设计系统变量提取、资源文件导出,支持双向同步和组件映射。工作流程涵盖设计标注、配置导出和代码生成三阶段,提供设计令牌、响应式布局等高级特性。该工具支持Qt5.15+/6.0+版本,通过标准化协作流程显著提升设计开发效率,确保视觉与代码一致性,适用于中英文项目开发。原创 2025-09-12 14:24:26 · 320 阅读 · 0 评论 -
机器人点阵轨迹规划演示
摘要:该项目实现了一个机器人点阵轨迹规划系统,采用策略模式设计。主要包含Robot类作为上下文,PathPlanning作为策略接口,以及GridArrayPlanning作为具体策略实现。系统支持两种点阵类型:方形和圆形,通过GridConfig配置参数。演示程序展示了3x3方形点阵和圆形点阵的路径规划,机器人可按照规划路径移动并显示状态信息。代码采用C++17标准,使用Qt框架构建,包含完整的类结构和规划算法实现。原创 2025-09-10 16:43:48 · 60 阅读 · 0 评论 -
访问者模式 (Visitor Pattern)
访问者模式是一种行为设计模式,允许在不修改元素类的情况下定义新操作。其核心思想是通过双重分发实现操作选择,将数据结构与操作分离。该模式包含五个角色:Visitor接口、具体访问者、Element接口、具体元素和对象结构。示例展示了几何图形处理、编译器AST处理和文档导出系统三种应用场景。优点包括易于添加新操作、集中化算法、累积状态等,但缺点是新元素类型难以添加、破坏封装性。适用于对象结构稳定但需要频繁添加新操作,或避免污染元素类的场景,如编译器、文档处理等系统。该模式通过分离数据结构与操作,提供强大的扩展能原创 2025-08-27 18:09:40 · 394 阅读 · 0 评论 -
模板方法模式 (Template Method Pattern)
模板方法模式是一种行为设计模式,它在父类中定义算法框架,允许子类重写特定步骤而不改变整体结构。该模式包含抽象类(定义模板方法和基本操作)和具体类(实现具体步骤)。通过C++示例展示了饮料制作、数据处理和游戏AI三种应用场景,演示了如何通过继承实现代码复用和行为定制。优点包括代码复用、控制反转和良好扩展性,缺点是可能限制灵活性和产生过多子类。与策略模式相比,模板方法使用继承而非组合,适合需要固定算法框架的场景。该模式特别适用于框架设计,能有效封装不变部分并提供扩展点。原创 2025-08-27 17:27:53 · 364 阅读 · 0 评论 -
策略模式 (Strategy Pattern)与几个C++例子
策略模式是一种将算法封装为独立对象的设计模式,使它们可以相互替换。其核心在于分离算法定义与使用,通过统一接口实现多态调用,避免条件判断。该模式包含三个角色:Context(上下文)、Strategy(策略接口)和ConcreteStrategy(具体策略实现)。文中通过C++示例展示了三种应用场景:1)排序策略(快速排序、冒泡排序等);2)支付系统(信用卡、PayPal等支付方式);3)导航系统(最快、最短等路线计算)。每个示例均演示了如何动态切换策略而无需修改客户端代码,体现了策略模式的灵活性和可扩展性。原创 2025-08-27 16:58:35 · 339 阅读 · 0 评论 -
状态模式与几个经典的C++例子
状态模式是一种行为设计模式,通过将对象的不同状态封装为独立类来简化复杂的状态转换逻辑。其核心思想是将状态判断逻辑转移到专门的类中,避免使用大量条件语句。主要包含Context(上下文)、State(状态接口)和ConcreteState(具体状态)三个角色。文中通过三个C++示例展示了模式应用:1)电灯开关(简单状态转换);2)TCP连接(复杂状态机);3)售货机(实际业务逻辑)。该模式遵循开闭原则,便于扩展新状态而无需修改现有代码,有效解耦状态相关行为与上下文对象。原创 2025-08-26 16:25:42 · 197 阅读 · 0 评论 -
观察者模式 (Observer Pattern)与几个C++应用例子
观察者模式实现一对多依赖关系,当主题对象状态变化时自动通知所有观察者。该模式包含四个核心角色:Subject(维护观察者列表)、ConcreteSubject(管理具体状态)、Observer(定义更新接口)和ConcreteObserver(实现业务逻辑)。通过C++示例展示了气象站(主题)与显示设备(观察者)的典型实现,演示了动态注册/移除观察者及状态自动通知机制。该模式有效解耦主题与观察者,增强系统灵活性,适用于GUI事件处理、发布-订阅系统等场景。原创 2025-08-26 16:00:55 · 599 阅读 · 0 评论 -
Memto模式与几个经典C++应用
备忘录模式是一种行为设计模式,用于在不破坏封装性的前提下保存和恢复对象状态。它包含三个角色:原发器(保存/恢复状态)、备忘录(存储状态)和负责人(管理备忘录)。该模式适用于文本编辑器撤销、游戏存档、事务回滚等场景。C++实现中,通过友元类控制备忘录访问权限,确保只有原发器能操作状态。优点包括状态恢复简便和封装性好,缺点是可能消耗较多内存。示例展示了文本编辑器撤销、游戏存档和数据库回滚等实际应用。原创 2025-08-25 10:47:32 · 71 阅读 · 0 评论 -
中介者模式与几个C++应用实例
中介者模式是一种行为设计模式,通过中介对象封装对象间的交互,降低耦合度。该模式包含四个核心角色:中介者接口、具体中介者、同事类接口和具体同事类。文章以聊天室和飞机塔台调度系统为例,展示了中介者模式的C++实现。在聊天室场景中,用户通过中介者发送消息,无需知道其他用户存在;在塔台调度系统中,飞机通过塔台协调起降。该模式优势在于解耦对象、集中控制交互逻辑、易于扩展系统。代码示例演示了如何实现松耦合的星形通信结构,避免复杂的网状依赖关系。原创 2025-08-24 20:12:01 · 838 阅读 · 0 评论 -
迭代器模式与几个经典的C++实现
迭代器模式是一种行为设计模式,用于顺序访问聚合对象中的元素而不暴露其内部结构。该模式包含迭代器接口、具体迭代器、聚合接口和具体聚合四个角色,适用于需要统一遍历接口、支持多种遍历方式的场景。优点包括职责分离、开闭原则支持等,缺点是可能增加简单集合的复杂度。文中提供了C++实现示例,包括自定义数组迭代器、二叉树中序遍历迭代器、STL风格过滤迭代器等,展示了迭代器模式在不同场景下的应用。该模式是C++标准库的核心设计思想,特别适用于自定义容器和复杂数据结构的遍历需求。原创 2025-08-23 21:29:19 · 456 阅读 · 0 评论 -
解释器模式与布尔表达式的C++实现
解释器模式是一种行为设计模式,用于构建简单的语言解释器。它将文法规则表示为类层次结构,通过递归调用实现句子解释。本文详细介绍了该模式的结构(包括抽象表达式、终结符、非终结符和上下文角色)及其优缺点,并展示了如何用C++实现一个布尔表达式求值器。该实现支持变量、常量及逻辑运算符,通过构建抽象语法树(AST)并递归解释节点来完成求值。文章还讨论了实际应用中需要完善的方面,如解析器构建、错误处理等扩展功能。该模式适用于简单文法场景,但对复杂文法维护性较差。原创 2025-08-23 11:58:29 · 89 阅读 · 0 评论 -
解释器模式(Interpreter Pattern)及C++实现
解释器模式是一种行为设计模式,用于定义语言的文法规则并提供解释执行功能。该模式通过抽象表达式、终结符表达式和非终结符表达式等角色构建语法树,实现对特定领域语言的解释。典型应用包括数学表达式计算、SQL解析和正则表达式处理等。文中提供了C++实现示例:一个数学表达式计算器(支持变量、加减乘除运算)和一个简化版SQL条件解析器(支持AND/OR/NOT逻辑和比较运算)。解释器模式优点在于易于扩展文法,但缺点是复杂文法难以维护且执行效率较低。该模式适用于需要解释简单语言且效率要求不高的场景。原创 2025-08-08 14:31:15 · 4160 阅读 · 0 评论 -
命令模式(Command Pattern)及C++实现
命令模式是一种行为设计模式,它将请求封装为对象,实现调用者与接收者的解耦。该模式包含命令接口、具体命令、接收者、调用者和客户端五个核心角色。摘要展示了五个经典应用场景的C++实现:1)文本编辑器的撤销/重做;2)智能家居遥控器;3)支持撤销的交易系统;4)线程池任务调度;5)游戏输入处理。命令模式优势包括解耦、支持撤销/重做、事务处理、灵活扩展和队列/日志功能,适用于需要请求封装、解耦和操作记录的复杂系统设计。原创 2025-08-08 11:41:32 · 304 阅读 · 0 评论 -
职责链模式应用场景与C++实现
职责链模式是一种行为设计模式,通过将多个处理对象连接成链,使请求沿着链条传递直到被处理。该模式包含抽象处理器、具体处理器和客户端三个核心组件,具有动态组合流程、降低耦合度等特点。典型应用场景包括多级日志过滤、订单处理流程、游戏事件处理等。文中以C++实现的采购审批系统为例,展示了不同层级审批人(经理、总监、CFO、董事会)按金额分级的处理流程。该模式支持功能增强和模板化实现,建议结合工厂模式构建责任链,并可通过组合模式、策略模式等进行扩展,特别适用于需要动态调整处理流程的场景。原创 2025-08-07 21:05:40 · 350 阅读 · 0 评论 -
代理模式(Proxy Pattern)及其应用场景
代理模式是一种结构型设计模式,通过代理对象控制对目标对象的访问。它主要特点包括:控制访问权限、添加额外功能(如日志、缓存)、延迟初始化资源密集型对象,以及作为远程对象的本地代表。代理模式分为虚拟代理(延迟加载)、保护代理(访问控制)、远程代理和智能引用代理等类型。示例代码展示了代理模式在图像加载、数据库访问控制、资源引用计数和远程服务调用等场景的应用。与装饰器模式不同,代理模式着重于访问控制而非行为扩展,适用于延迟加载、权限管理、远程服务代理等场景。原创 2025-08-06 15:33:02 · 462 阅读 · 0 评论 -
享元模式(Flyweight Pattern)及其应用场景
享元模式是一种优化内存使用的结构型设计模式,通过共享相似对象来减少资源消耗。其核心是将对象状态分为内部状态(可共享的不变部分)和外部状态(不可共享的变化部分),并使用工厂管理共享对象。该模式适用于需要处理大量相似对象的场景,如文字处理、游戏开发和图形渲染。示例展示了在C++中实现享元模式的三种应用:字符对象共享、树木类型共享和围棋棋子共享,通过工厂统一管理对象创建和复用,有效降低了内存占用。实现关键在于合理分离内外状态,并由客户端维护外部状态。原创 2025-08-06 15:20:40 · 306 阅读 · 0 评论 -
外观模式(Facade Pattern)及其应用场景
外观模式是一种简化复杂系统的设计模式,通过提供统一的高层接口来降低子系统使用难度。该模式具有解耦客户端与子系统、提高易用性等优点,适用于系统集成、多层架构等场景。文中通过计算机启动、家庭影院和编译器三个C++示例,展示了外观模式的具体实现方式:分别为复杂子系统封装简洁接口(如ComputerFacade统一管理CPU/内存等组件),使客户端调用更简单。该模式常与其他设计模式结合使用,既能隐藏系统复杂性,又保留直接访问子系统的灵活性。原创 2025-08-06 14:32:46 · 332 阅读 · 0 评论 -
组合模式(Composite Pattern)及其应用场景
组合模式是一种结构型设计模式,用于表示"部分-整体"的树形层次结构。它通过将对象组合成树状结构,使得用户对单个对象和组合对象的使用具有一致性。模式包含抽象构件(Component)、叶子构件(Leaf)和容器构件(Composite)三个核心角色,适用于文件系统、UI组件、组织结构等需要处理树形数据的场景。优点是能清晰定义层次结构、统一处理简单和复杂元素,但设计较复杂且可能违反依赖倒置原则。文中提供了C++实现的4个示例(文件系统、图形绘制、组织架构和UI组件),展示了如何应用该模式处理原创 2025-08-06 14:16:48 · 373 阅读 · 0 评论 -
桥接模式(Bridge Pattern)及其应用场景
桥接模式是一种结构型设计模式,它将抽象与实现分离,使两者能独立变化。该模式适用于存在多个独立变化维度的系统,可避免继承带来的复杂性。通过定义抽象类和实现类接口,桥接模式提高了系统扩展性,实现细节对客户透明。文中提供了三个C++实现案例:图形绘制系统(形状与渲染器)、设备远程控制(遥控器与设备)、日志系统(日志类型与输出方式),展示了如何将抽象部分与实现部分解耦。该模式虽然增加了设计复杂度,但能有效处理多维度变化需求。原创 2025-08-05 15:33:38 · 298 阅读 · 0 评论 -
如何选择结构型模式?
摘要:适配器模式是一种结构型设计模式,用于解决接口不兼容问题。它通过将现有接口转换为目标接口,使不兼容的类能够协同工作。核心角色包括目标接口、被适配者和适配器,可通过类继承或对象组合实现。适配器模式适用于系统集成、旧系统升级等场景,能提高代码复用性但可能增加系统复杂性。C++示例展示了类适配器(多重继承)和对象适配器(组合)的实现方式,以及STL中的适配器应用。该模式在数据库驱动、日志框架等实际场景中广泛应用。原创 2025-08-05 15:00:04 · 267 阅读 · 0 评论 -
适配器模式的三种C++实现
适配器模式是一种结构型设计模式,用于解决接口不兼容问题。它通过转换接口使不兼容的类能够协同工作。文章介绍了三种C++实现方式:1)类适配器通过继承实现;2)对象适配器通过组合实现;3)参数化适配器通过运行时配置实现。关键组件包括目标接口、被适配者和适配器。每种实现方式各有优缺点:类适配器可重写行为但需多重继承;对象适配器更灵活但增加间接层;参数化适配器最灵活但接口较复杂。典型应用场景包括系统集成、第三方库适配和接口标准化。实现时需注意资源管理和线程安全。原创 2025-07-29 14:43:25 · 493 阅读 · 0 评论 -
Lazy Initialization (延迟初始化)
摘要: 延迟初始化(Lazy Initialization)是一种优化性能的设计模式,通过推迟对象的创建或昂贵计算直到首次真正需要时执行。其核心包括按需创建、线程安全及结果缓存,适用于高开销对象或不确定是否使用的资源。C#通过Lazy<T>类简化实现(自动处理线程安全),C++可使用std::call_once或双重检查锁定(需手动处理同步)。虽能减少资源浪费,但会首次访问时增加开销,且需注意线程安全与初始化错误的延迟暴露。适用于虚拟代理、惰性求值等场景,但需权衡可预测性与性能收益。原创 2025-07-23 09:51:44 · 416 阅读 · 0 评论 -
创建型设计模式
本文介绍了五种主要的创建型设计模式及其C++实现:1) 单例模式确保类唯一实例;2) 工厂方法模式通过子类决定实例化对象;3) 抽象工厂模式创建相关对象家族;4) 建造者模式分离复杂对象构建与表示;5) 原型模式通过复制创建新对象。每种模式都包含角色关系图和完整的C++代码示例,展示了线程安全单例、工厂方法实现、抽象工厂应用、建造者流程和原型克隆等关键技术实现。这些模式为对象创建提供了灵活、可复用的解决方案。原创 2025-06-11 21:14:46 · 693 阅读 · 0 评论 -
Abstract Factory 模式与C++/C#的代码实现
设计模式:抽象工厂原创 2025-04-29 21:43:51 · 716 阅读 · 0 评论 -
浮点数Float概述
浮点数介绍原创 2025-03-20 13:45:33 · 1439 阅读 · 0 评论 -
以光盘读写系统演示面向对象设计的原则与方法
面向对象设计原则与方法 光盘存储系统原创 2025-03-19 22:08:38 · 1216 阅读 · 0 评论 -
C++中函数模板与类模板的简单使用
C++的函数模板与类模板的简单使用原创 2025-03-19 21:46:40 · 530 阅读 · 0 评论 -
用C++实现一个基于模板的观察者设计模式
观察者模式 C++模板实现原创 2025-01-17 15:49:35 · 738 阅读 · 0 评论 -
Reference Counter Pattern(引用计数模式)
引用计数模式原创 2025-01-16 16:22:15 · 402 阅读 · 0 评论 -
单例模式与QT中的C++实现
单例模式在Qt中的实现原创 2024-11-21 10:42:20 · 508 阅读 · 0 评论 -
工厂方法模式与抽象工厂模式
工厂模式与抽象工厂模式C++实现原创 2024-10-29 15:01:45 · 1642 阅读 · 0 评论 -
C++实现MVC模式,用来显示激光器的当前状态:开或关,输出功率以及工作频率
用C++实现一个MVC模式原创 2024-10-25 11:16:53 · 637 阅读 · 0 评论 -
C++简单动态数组缓存的管理实现
动态数组缓存管理实现原创 2024-10-14 11:50:44 · 150 阅读 · 0 评论 -
C++内存池的实现
C++内存池的实现原创 2024-10-12 18:20:13 · 337 阅读 · 0 评论 -
QT中基于QMatrix4x4与QVector3D的三维坐标变换类实现
QT中实现坐标变换类原创 2024-09-25 17:35:13 · 794 阅读 · 0 评论 -
半导体设备系列(2) 半导体设备与工厂控制仿真器Demo编写
基于C/S架构用C++编写半导体设备仿真器与工厂控制仿真器原创 2024-09-11 11:05:59 · 530 阅读 · 0 评论
分享