自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VS Code使用 CMake 或 Makefile管理C++多文件编译

使用 CMake 或 Makefile 是更加标准和灵活的方法来管理多文件编译。以下是一个简单的示例,展示了如何使用 CMake 来构建包含多个源文件的 C++ 项目。【注】在我测试C++静态全局对象初始化的过程中,由于使用g++后面跟需要编译的文件名太过于麻烦,特整理下CMake的管理多文件编译的方法。

2023-12-06 20:58:49 1971

原创 《C++20设计模式》学习笔记--构造器模式

构造器模式的目的是简化复杂对象或一系列对象的构建过程,从而单独定义构成该复杂对象的各个组件的构建方法。构造器模式可以通过流式接口调用链来实现复杂的构建过程。为了实现流式接口,构造器函数需要返回this或 *this。为了强制用户使用构造器的API,我们可以将目标对象的构造函数限制为不可访问,同时,定义一个create()接口返回构造器。通过定义适当的运算符,可以使构造器转化为对象本身。借助C++新特性中的统一初始化语法,可以实现Groovy风格的构造器。

2023-11-30 21:33:43 1245 4

原创 一、Android CameraService服务启动

Android CameraService服务启动

2023-05-20 22:35:45 1155

原创 《C++20设计模式》---桥接模式学习笔记

Pimpl模式是桥接(Bridge)模式的一种具体实现,现在我们看看关于桥接模式更加通用的做法。假设有两种(数学意义上的)对象:几何对象以及将几何对象绘制在屏幕上的渲染器对象。如同我们在适配器模式中展示的那样,假设我们可以以向量和光栅形式进行渲染(尽管我们不会在这里编写任何实际的绘图代码),并且将几何对象的形状限制为圆形。protected:public:可以看到,Shape类含有一个Render类型的引用。这正是桥接模型的“桥”之所在。

2023-12-16 11:12:41 1249

原创 《C++20设计模式》---适配器模式学习笔记

适配器“是一个非常简单的概念:它允许我们将已有的接口调整(适配)为我们需要的另一个接口。适配器模式存在的真正问题是,在适配过程中,有时会生成临时数据以满足其他接口的要求。当发生这种情况时,我们可以采用缓存策略,确保只在必要时生成新的数据。当缓存的数据发生变化时,需要清理缓存中过时的数据。我们尚未提及的一个主题时懒汉式适配器,我们之前实现的适配器总是在适配器创建时就完成适配转换。如果只希望在使用适配器时才完成适配转换的工作,又该如何呢?这个问题很简单。(懒汉式适配器)

2023-12-16 11:10:35 915

原创 《C++20设计模式》学习笔记---单例模式

单例模式并不完全令人厌恶,但是,如果不小心使用,它们会破坏应用程序的可测试性可可重构性。如果必须使用单例模式,请尝试避免直接使用它(如编写SomeComponent.get().foo()),将其指定为依赖项(例如,作为构造函数的参数),并保证所有依赖项都是从应用程序的某个唯一的位置(例如,控制反转容器)获取或初始化的。

2023-12-08 20:48:52 1251 2

原创 《C++20设计模式》学习笔记---原型模式

原型模式体现了对对象进行深度拷贝的概念,因此,不必每次都进行完全初始化,而是可以获取一个预定义的对象,拷贝它,稍微修改它,然后独立于原始的对象使用它。编写正确拷贝原始对象的代码,也就是执行深度拷贝的代码。这项工作可以在拷贝构造函数 / 拷贝赋值运算符或者单独的成员函数中完成。编写支持序列化 / 反序列化的代码,使用序列化 / 反序列化机制,在完成序列化后立即进行反序列化,由此完成复制。该方法会引入额外的开销,是否使用这种方法取决于具体使用场景下的拷贝频率。

2023-12-06 21:02:32 1177

原创 《C++20设计模式》---原型模式学习笔记代码

【代码】《C++20设计模式》---原型模式学习笔记代码。

2023-12-06 21:00:07 554

原创 《C++20设计模式》学习笔记---工厂方法和抽象工厂模式

工厂方法:类的成员函数,用于创建对象,它通常可以替换构造函数。工厂:一个类,它知道如何创建对象。不过,如果为imen传入给一个函数可以创建对象的参数(如函数或类似的对象),那么这个参数也被称为工厂。正如其名所表示的意义,抽象类可以被具体的类继承。由此产生了一个工厂族群。实际开发中抽象工厂很少见。工厂可以拒绝构建对象,也就是说,工厂可以返回默认初始化的智能指针,可以返回optional或者空指针nullptr,而不用必须返回一个对象。

2023-12-04 21:40:34 1132

原创 《C++20设计模式》学习笔记---工厂方法及抽象工厂模式代码

【代码】《C++20设计模式》学习笔记---工厂方法及抽象工厂模式代码。

2023-12-04 21:38:46 489

原创 《C++20设计模式》学习笔记代码---构造器模式

【代码】《C++20设计模式》学习笔记代码---构造器模式。

2023-11-30 21:35:14 446

原创 linux安装notepad++

sudo snap install notepad-plus-plus

2023-11-08 11:23:11 706

原创 常用的排序算法---快排

1. 快速排序的简单概述(1)选择基准或者说key值;(2)分区,把需要排序的的元素和基准元素比较,大于基准的元素放在基准的一侧;小于基准的元素放在基准的另一侧;等于基准的元素可随便放。(3)递归执行分区后的小分区

2020-04-01 22:19:44 432

原创 win10 ipv4无网络连接

1.用管理员打开命令行2.输入netsh winsock reset catalog回车3.输入netsh int ip reset reset.log回车4.重启5.打开控制面板→网络共享中心→更改适配器→单击打开属性→点击ipv4→点击属性→选择手动输入ip地址→输入正确后确认6.完成...

2019-01-08 23:46:17 8705 1

原创 makefile报错:linker input file unused bacause linking not done

1.make后报错2.通过参考http://blog.sina.com.cn/s/blog_87c063060101ativ.html博客最终找出自己的错误    1)之前的maleficent文件        OBJS =  add/add_int.o add/add_float.o sub/sub_int.o sub/sub_float.o main.o        CFLAGS = -I...

2018-04-02 17:33:30 4964

空空如也

空空如也

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

TA关注的人

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