2021年3月29日
摘要: 1 形式 1 形式: 2 [capture](parameters) mutable -> return-type{statement} 3 [capture]--捕捉列表[val] [=] [&val] [&] 4 (parameters)--参数列表,如不需要传递参数,可以连()一起省略 5 m 阅读全文
posted @ 2021-03-29 16:08 望月又一 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 1 每个程序至少有一个线程; 2 启动线程: 1 std::thread t(function); //定义线程对象,传入参数即启动 2 3 如果传入的线程函数是一个类的成员函数,则如下 4 A a;//定义一个A的对象a 5 std::thread t(&A::f,a); //将A类的成员函数地址 阅读全文
posted @ 2021-03-29 16:04 望月又一 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 1 并发:同时有多个任务执行,叫并发;2 并发分类:任务切换/硬件并发; 并发需要时间成本(上下文切换):保存CUP状态、指令指针,算出切换到哪个任务、重新加载处理器状态。3 为什么选择并发: 关注点分离:将不同的任务在不同线程执行, 比如:播放器播放任务和界面的暂停退出任务;否则播放过程需要一直监 阅读全文
posted @ 2021-03-29 15:56 望月又一 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式非常简单,就是在抽象类中对某个方法进行实现,并且将这种实现延迟到子类中(即子类中不再重写该方法) 这样,该方法就类似一个模版,对所有类型的子类对象都通用。 模板方法模式的改进:模板方法有时对不同的子类 表现可能不同,此时需要在此方法中获取子类的状态,即 在抽象类中定义一个函数,专门获取各 阅读全文
posted @ 2021-03-29 15:54 望月又一 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 在任何时刻,被指定的类只有一个实例 精髓: 1 将类的构造函数声明为私有的,确保外部不能随意通过构造函数创建对象 2 创建一个类的私有静态成员,该成员为该类的对象(静态成员保证了该对象只有一份) 3 提供一个静态函数,获取该静态成员 单例模式有多种实现方式: 1 懒汉模式(线程不安全) 1 publ 阅读全文
posted @ 2021-03-29 15:52 望月又一 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 定义一系列算法,将每个算法都封装成类,并且使相互之间可以替换。 应用:将不同算法类对象传进去,通过对象调用各自的算法实现 策略模式的核心思想:对算法、规则进行封装,使替换和新增算法更灵活。 优点:算法可自由切换、方便拓展和新增 缺点:所有策略类都需要对外暴漏 例子:有一个person类,有年龄、体重 阅读全文
posted @ 2021-03-29 15:49 望月又一 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 专门利用一个工厂类,根据输入的参数,创建不同类的实例的模式,叫工厂模式。 工厂类拥有一个静态函数,用于创建产品类的对象,返回值为父类的指针(指向子类的对象) 静态函数中,根据传入的参数,构建具体的子类对象 1 简单工厂模式 简单工厂模式只有一个工厂类,工厂类中有一个静态函数,根据参数创建产品类的实例 阅读全文
posted @ 2021-03-29 15:41 望月又一 阅读(56) 评论(0) 推荐(0) 编辑