自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【设计模式】原型模式:用“克隆”术让对象创建更灵活

本文讲解了C++中的原型模式,一种通过“克隆”已有对象创建新实例的设计模式。文章从核心概念入手,剖析其“复制即创建”的优势,并通过详细的代码示例展示如何实现简易原型及深拷贝,解决浅拷贝隐患。结合图形编辑、游戏开发等应用场景,阐明其在复杂对象创建中的价值。文中还对比了原型模式与工厂模式的区别,总结其优缺点,帮助读者全面掌握这一模式。无论是初学者还是进阶开发者,都能从中轻松理解原型模式的原理与实践应用。

2025-04-01 08:45:00 1982

原创 【设计模式】生成器模式:轻松构建复杂对象

本文讲解了一种分步骤构建复杂对象的生成器模式。通过计算机组装的代码示例,展示了其核心角色(产品、生成器、具体生成器、指挥者)及实现方式。文章还探讨了生成器模式在游戏开发、GUI设计等场景的应用价值,并与抽象工厂模式对比,突出其注重构建过程而非产品族的特性。配以生动类比和实用建议,本文帮助读者从基础到进阶全面掌握生成器模式,适合希望提升代码灵活性与可维护性的开发者。

2025-03-27 10:18:15 792

原创 【设计模式】抽象工厂:打造你的全能装备生产线

本文以生动有趣的方式讲解抽象工厂模式,通过游戏角色装备工厂的比喻,深入浅出地阐释其核心概念。文章对比简单工厂与工厂方法模式,展示抽象工厂在创建相关对象时的优势,并提供详细的C++代码示例,帮助读者轻松掌握实现方法。此外,列举GUI开发、数据库访问等实际场景,凸显其价值。

2025-03-14 08:45:00 760

原创 libusb交叉编译

libusb是一个C语言库,旨在为开发者提供一种统一的方式来访问USB设备,而无需深入了解底层操作系统的USB栈。USB设备枚举:发现和列出系统中连接的USB设备。设备打开和关闭:管理USB设备的连接和断开。配置和接口管理:控制USB设备的配置和接口设置。USB传输:支持控制传输、中断传输、批量传输和等时传输等多种USB通信方式。libusb的设计目标是跨平台兼容性,这意味着您编写的代码可以在多种操作系统上运行,只需进行少量的修改。

2025-03-10 11:02:54 1036

原创 LCM交叉编译

消息传递模型: 采用发布/订阅模式,允许多个进程通过通道(channel)高效通信。数据序列化: 提供语言无关的类型定义语言(LCM 类型规范),通过lcm-gen工具自动生成特定语言的绑定代码。跨平台支持: 支持多种语言(C、C++、Java、Python 等)和操作系统(Linux、Windows、macOS 等)。实时性: 提供低延迟通信和实时流量分析工具(如lcm-spy),无需中央通信枢纽。应用场景: 广泛用于机器人、无人机和自主系统的开发。

2025-03-05 23:58:12 826

原创 glib交叉编译

glib是一个功能强大的C语言库,广泛应用于软件开发中。它提供了许多核心功能,如数据结构、线程管理、事件循环和实用工具函数,是GNOME项目的基础组件,同时也被许多其他项目(如GTK+、GStreamer和D-Bus)所依赖。glib的设计目标是提供跨平台的抽象层,使开发者能够编写可在不同操作系统上运行的代码。交叉编译是一种特殊的编译技术,允许开发者在一个平台(宿主机)上编译出可在另一个平台(目标机)上运行的二进制文件。这对于嵌入式系统、移动设备或其他架构(如ARM、MIPS)的开发尤为重要。

2025-03-05 17:11:55 752

原创 【设计模式】工厂方法:从交通工具系统看设计的奥秘

工厂方法模式是设计模式中的一颗明星,本文以交通工具系统为背景,生动讲解其核心思想。通过C++代码实现汽车、飞机、轮船的创建,展示如何将对象实例化推迟到子类,兼具灵活性与扩展性。文章对比简单工厂与工厂方法,剖析两者的优劣,并结合GUI 框架、游戏生成和文档处理等场景,阐明其应用价值。无论是GUI控件还是游戏敌人,工厂方法都能解耦创建逻辑,提升代码优雅度。轻松有趣的比喻和详尽示例,带你从零掌握这一模式!

2025-03-04 10:23:49 909

原创 【设计模式】简单工厂:让你的代码像点餐一样简单!

本文生动讲解了C++简单工厂模式,以餐馆点餐类比其核心:客户端通过工厂创建对象,无需关心细节。以“食物工厂”为例,展示了Food基类、Pizza等产品类及FoodFactory的实现,并分析其优缺点。文中区分了其他工厂模式,并列举游戏开发、GUI库等场景,说明各角色的作用。简单工厂让代码更优雅,是设计模式的实用入门。

2025-03-03 15:40:10 741

原创 【设计模式】单例模式:程序里的“独一无二”是如何炼成的?

单例模式确保类只有一个实例,并提供全局访问。本文生动讲解C++实现单例:从基础“懒汉模式”到线程安全的加锁优化,再到优雅的Meyers' Singleton,利用C++11实现简洁与安全并存。提供详细代码与优缺点分析,易于掌握。列举日志管理、线程池等场景,展示实用性,同时提醒测试难题与全局状态风险。适合C++初学者与进阶开发者,快来打造你的“独一无二”!

2025-02-28 15:53:30 464

原创 RViz2中创建自定义Panel面板

RViz2 是 ROS2 中用于可视化数据的工具。通过创建自定义 Panel,你可以定制 RViz2 的用户界面,实现与外部数据源交互,或者显示额外的控制面板。本教程将引导你快速创建一个简单的 Panel,展示如何在 RViz2 中集成基本的 UI 元素。

2025-01-24 10:47:51 473

原创 QTableView/QTableWidget单元格自适应拉伸

QTableView及QTableWidget实现自适应调整表格单元格的的宽度以及高度,当表格进行拉伸改变了表格的大小时,单元格的大小将跟着表格大小的改变而自适应改变。

2023-11-21 14:28:33 6040 1

原创 ROS系统运行第一个程序仿真小乌龟

在ROS系统中体验第一个程序仿真小乌龟

2023-05-08 23:41:01 359

原创 Ubuntu下ROS安装步骤

文章主要介绍了ROS再Ubuntu下的安装步骤

2023-05-08 00:46:19 1013 1

原创 C++常见面试题

C++常见的一些面试题总结

2023-03-26 10:51:20 146 2

原创 Qt中常见的面试题总结

基于Qt开发的一些常用面试题

2023-03-25 20:21:07 8108

原创 QTreeView实现层级选中联动效果

在MyModel中,我们为每个节点添加了一个布尔属性check_state,用于记录该节点的选中状态。在处理选中项更改的时候,我们使用update_children()和update_parent()方法更新选中状态,并使用setData()方法更新TreeView上的项。在TreeView中,我们为节点、消息和信号添加了自定义的setData()方法,用于更新其选中状态。在MyModel中,我们还重载了data()方法,以便我们可以为TreeView中的每个项提供不同的文本和显示样式。

2023-03-15 20:10:03 944

空空如也

空空如也

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

TA关注的人

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