![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
C/C++ 记录
一碗螺蛳粉L
这个作者很懒,什么都没留下…
展开
-
C++ 简易日志类封装
C++ 单例模式下 简易日志类封装原创 2023-11-16 10:30:50 · 160 阅读 · 0 评论 -
C++ 设计原则 - 依赖倒置原则
这样,无论将来增加了新的外部设备,只需要基于IDevice接口实现新的设备类,而无需修改Computer类的代码。通过一个简单的示例来说明依赖倒置原则的实现。这种实现方式遵循了依赖倒置原则:高层模块(Computer)不依赖于底层模块(具体的鼠标或键盘类),而是都依赖于抽象(IDevice 接口)。给电脑类(Computer)增加一个新的外部设备,比如打印机(Printer),根据依赖倒置原则的设计,我们可以轻松地实现这一扩展。通过这样的扩展,在不修改现有代码的情况下,实现了对新设备的支持。原创 2023-11-12 22:02:57 · 548 阅读 · 0 评论 -
C++ 设计原则 - 开放封闭原则
C++ 中的开放封闭原则(Open-Closed Principle,OCP)是SOLID设计原则的一部分,它指出软件实体(类、模块、函数等)应该对扩展是开放的,对修改是封闭的。换句话说,当需要改变系统的行为时,不应该修改现有的代码,而是通过扩展来实现变化。假设我们有一个图形绘制程序,需要支持不同类型的图形(如圆形、矩形)并且能够根据需要添加新的图形类型,但不希望修改现有的代码。通过这种方式,我们可以持续地向系统中添加新的图形类型,而不会影响到已有的代码,从而体现了系统的可扩展性和灵活性。原创 2023-11-12 21:52:59 · 247 阅读 · 0 评论 -
c++ 设计原则 - 单一职责原则
然后,在需要的地方调用 FileCompressor 的方法进行压缩和解压操作,这样就实现了功能的扩展,并且不会影响到原有的文件读取和写入类。通过以上的两个场景,我们可以看到,根据单一职责原则的设计,当需求发生变化时,我们可以独立地扩展或修改相应的类,而不会对其他部分的代码造成影响。设计遵循单一职责原则:每个类只负责一项工作,当需求发生变化时,只需要修改对应的类,而无需影响其他类。当需求发生变化时,根据单一职责原则的设计,我们可以针对不同的需求独立地扩展或修改相应的类,而不会影响其他部分的代码。原创 2023-11-12 21:41:28 · 278 阅读 · 0 评论 -
C++ AES加密解密示例
【代码】C++ AES加密解密示例。原创 2023-10-15 11:56:52 · 588 阅读 · 0 评论 -
c++ 通过socket编写HttpClient
HttpClient头文件。HttpClient源文件。原创 2023-10-11 18:12:20 · 116 阅读 · 0 评论 -
window c++实现启动另一程序
【代码】window c++实现启动另一程序。原创 2023-09-27 00:08:33 · 194 阅读 · 0 评论 -
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 · 1086 阅读 · 1 评论 -
c++调用模板函数注意事项
浅析c++调用函数模板问题原创 2023-08-07 16:24:56 · 45 阅读 · 0 评论 -
nlohmann::json 中文乱码解决方案
nlohmann::json 中文乱码解决方案原创 2023-08-03 15:16:32 · 2433 阅读 · 1 评论 -
C++ 日志格式编写记录
通过C/C++语言中的预定义符号__FILE__和__FUNCTION__和__LINE__,分别可以获取当前文件的名称和当前的行数,但最好在调用Log函数时不用调用者显示的传入__FILE__和__FUNCTION__和__LINE__,因为每次调用Log函数时传入的这三个参数都是固定的。注意:不能将__FILE__和__FUNCTION__和__LINE__设置为参数的缺省值,因为这样每次获取到的都是Log函数所在的文件名称和所在的行数。FATAL: 表示发生了致命的错误,该事件将导致服务器停止运行。原创 2023-06-15 22:56:54 · 397 阅读 · 0 评论 -
C语言-四位数组成无重复数字的三位数
记录/**题目:若有1、2、3、4四个数字,请编写程序输出所有互不相同且无重复数字的三位数 和 总个数.**/int main(void){ int i = 0; int j = 0; int k = 0; int count = 0; for(i = 1; i < 5; i++) //百位 { for(j = 1; j < 5; j++) //十位 { for(k = 1; k原创 2020-08-22 09:24:52 · 9112 阅读 · 1 评论 -
c语言-冒泡排序
C语言冒泡排序记录一下:题目:冒泡排序:已知int型数组,写出将数组从小到大排序的程序。然后进行一点点小优化。冒泡排序算法的运作如下:(1)比较相邻的元素。如果前一个比后二个大,就交换它们两个。(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。(3)针对所有的元素重复以上的步骤,除了最后一个。void bubble_sort(void){ int arr[128] = {0}; int num = 0;原创 2020-08-11 08:59:25 · 464 阅读 · 0 评论 -
C++ double类型比较大小
由于double型的精度问题,比较其值大小时,不能像int整数型那样比较。比较方式如下://double比较大小 //double比较大小 const double eps=1e-6;//1的负6次方 double dNum1=0.0, dNum2=0.0; cout<<"输入dNum1和dNum2的值:"; cin>>dNum1>>dNum2; if(dNum1+eps < dNum2)//way1. 判断a是否小于b cout <原创 2021-11-28 23:31:10 · 10850 阅读 · 0 评论