- 博客(71)
- 资源 (5)
- 收藏
- 关注
原创 C++ 设计原则 - 依赖倒置原则
这样,无论将来增加了新的外部设备,只需要基于IDevice接口实现新的设备类,而无需修改Computer类的代码。通过一个简单的示例来说明依赖倒置原则的实现。这种实现方式遵循了依赖倒置原则:高层模块(Computer)不依赖于底层模块(具体的鼠标或键盘类),而是都依赖于抽象(IDevice 接口)。给电脑类(Computer)增加一个新的外部设备,比如打印机(Printer),根据依赖倒置原则的设计,我们可以轻松地实现这一扩展。通过这样的扩展,在不修改现有代码的情况下,实现了对新设备的支持。
2023-11-12 22:02:57 578
原创 C++ 设计原则 - 开放封闭原则
C++ 中的开放封闭原则(Open-Closed Principle,OCP)是SOLID设计原则的一部分,它指出软件实体(类、模块、函数等)应该对扩展是开放的,对修改是封闭的。换句话说,当需要改变系统的行为时,不应该修改现有的代码,而是通过扩展来实现变化。假设我们有一个图形绘制程序,需要支持不同类型的图形(如圆形、矩形)并且能够根据需要添加新的图形类型,但不希望修改现有的代码。通过这种方式,我们可以持续地向系统中添加新的图形类型,而不会影响到已有的代码,从而体现了系统的可扩展性和灵活性。
2023-11-12 21:52:59 269
原创 c++ 设计原则 - 单一职责原则
然后,在需要的地方调用 FileCompressor 的方法进行压缩和解压操作,这样就实现了功能的扩展,并且不会影响到原有的文件读取和写入类。通过以上的两个场景,我们可以看到,根据单一职责原则的设计,当需求发生变化时,我们可以独立地扩展或修改相应的类,而不会对其他部分的代码造成影响。设计遵循单一职责原则:每个类只负责一项工作,当需求发生变化时,只需要修改对应的类,而无需影响其他类。当需求发生变化时,根据单一职责原则的设计,我们可以针对不同的需求独立地扩展或修改相应的类,而不会影响其他部分的代码。
2023-11-12 21:41:28 293
原创 VSCode C/C++ 分目录+多文件编译配置2
其他调试器特定的属性,如 “preLaunchTask”(指定在调试之前执行的任务)、“sourceFileMap”(指定源代码与实际文件路径之间的映射关系)等。task.json 文件用于配置任务,它定义了执行特定操作的任务,并提供了相应的命令和参数。“configurations”:包含了一个或多个调试配置,每个配置定义了一个特定的调试方案。“request”:指定了调试器的请求类型,例如 “launch”、“attach” 等。“tasks”:包含了一个或多个任务配置,每个配置定义了一个特定的任务。
2023-10-22 13:53:57 2134
原创 JSON文件读写
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于在不同的应用程序和系统之间传输和存储数据。它使用人类可读的文本格式,并且易于编写和解析。
2023-10-05 23:41:41 305
原创 INI文件读写
QSettings类提供了一种简单的方法来读取和写入ini格式的文件。它允许你在应用程序中保存和恢复各种设置,如窗口位置,大小和状态。
2023-10-05 23:12:43 150
原创 XML文件读写
Qt提供了许多用于处理XML的类和功能,使您能够方便地读取、写入和操作XML数据。以下是一些常用的Qt XML类和功能:1. QDomDocument:用于表示整个XML文档,并提供了对文档进行解析、创建、遍历和修改的方法。2. QDomElement:表示XML文档中的元素(标签),可以访问和修改元素的属性和子元素。3. QDomNodeList:用于管理一组相关节点的集合,您可以使用它来获取元素的子元素列表。4. QDomAttr:表示XML元素的属性。5. QDomText:表示X
2023-10-05 17:52:51 121
原创 通过QProcess实现启动另一个程序
QProcess *process = new QProcess;QStringList msglist;//process->start(“C:\Program Files (x86)\calc.exe”, msglist);process->start(exeDirPath + “\” + test.exe, msglist);
2023-09-27 00:02:32 304
原创 httplib + nlohmann::json上传数据时中文乱码解决
(2)调用httplib::Response对象的set_content()方法时设置编码格式。(1)调用httplib::Response对象的set_header()方法来设置编码格式。(1)将数据先转为UTF-8格式。1.1 编码格式使用UTF-8。
2023-08-21 18:07:52 1272 1
原创 VSCode C/C++ 分目录+多文件编译配置
VSCode C/C++ 分文件、分目录编译配置:launch.json和task.json修改
2023-08-03 09:57:03 1601
原创 VSCode C/C++ 单目录+多文件编译配置
多文件编译备忘,带注释的地方都需要注意!launch.json文件。task.json文件。
2023-08-01 22:06:20 1273 1
原创 MFC子窗口获取父窗口指针,并调用/修改其变量或方法
在子窗口中调用父窗口的函数为void func_test(),调用父窗口中的变量为cstring str;注:用GetParent()获取父窗口指针;父窗口类为CParentDlg;
2023-07-10 19:00:00 999
原创 C++ 日志格式编写记录
通过C/C++语言中的预定义符号__FILE__和__FUNCTION__和__LINE__,分别可以获取当前文件的名称和当前的行数,但最好在调用Log函数时不用调用者显示的传入__FILE__和__FUNCTION__和__LINE__,因为每次调用Log函数时传入的这三个参数都是固定的。注意:不能将__FILE__和__FUNCTION__和__LINE__设置为参数的缺省值,因为这样每次获取到的都是Log函数所在的文件名称和所在的行数。FATAL: 表示发生了致命的错误,该事件将导致服务器停止运行。
2023-06-15 22:56:54 430
微软编程标准规范(含C++、VC、C#)
2024-08-24
VSCode C/C++ 分目录+多文件编译配置2 实现示例
2023-10-22
vscode VSCode C/C++ 单目录+多文件编译配置的实现示例
2023-10-22
QT样式工具QtBox.exe(单文件版本)
2023-10-05
C++实现AES加密/解密
2023-09-28
c++ http通讯 基于mongoose 的httpserver和httpclient
2023-09-27
libcurl库vs2019已编译版本,直接下载就能使用 它支持多种协议,包括HTTP、FTP、SMTP、POP3等常见协议
2023-09-26
整个代码由一个头文件组成 json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便
2023-08-03
VSCode C/C++分文件、分目录编译环境配置示例,可直接运行
2023-08-03
C++MFC List Control 扩展
2023-06-11
libXL库,已激活的用于Excel表格没有水印 往任意表格写入内容,修改;使用C++MFC测试
2023-05-31
Keil.STM32F4xx_DFP.2.14.0.pack.zip
2020-05-24
Keil.STM32F1xx_DFP.2.3.0.pack.zip
2020-05-23
Keil.STM32F4xx_DFP.1.0.8.pack.zip
2020-05-23
Keil.STM32F1xx_DFP.1.1.0.zip
2020-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人