(2·观察者模式)
观察者模式 将观察者和被观察的对象解耦,实现一对多的调用关系 主题Subject, 一般会定义成一个接口,提供方法用于注册、删除和通知观察者,通常也包含一个状态,当状态发生改变时,通知所有的观察者 观察者Observer: 观察者也需要实现一个接口,包含一个更新方法,在接收主题通知时执行对应的操作 具体主题ConcreteSubject: 主题的具体实现, 维护一个观察者列...
观察者模式 将观察者和被观察的对象解耦,实现一对多的调用关系 主题Subject, 一般会定义成一个接口,提供方法用于注册、删除和通知观察者,通常也包含一个状态,当状态发生改变时,通知所有的观察者 观察者Observer: 观察者也需要实现一个接口,包含一个更新方法,在接收主题通知时执行对应的操作 具体主题ConcreteSubject: 主题的具体实现, 维护一个观察者列...
UML 作用 Unified Modeling Language,统一建模语言 可视化图形直观的表示系统结构, 便于开发者、设计师和客户之间的沟通 分类 UML图可分为两大类: 结构型图(静态图) 类图(Class Diagram)描述系统的静态结构 对象图(Object Diagram) 展示某一时刻的对象实例及其关系 组件图(Component Diagram...
使用VSCode开发UE项目 修改ue->Editor Preferences->Source Code->vs code,设置默认编辑器,这样在general vs project files时将生成关于vs code的构建文件.code-workspace 配置vscode环境 安装下列插件 C/C...
强制转换 类型转换:将一种数据类型转换为另一种数据类型 隐式 vs. 显示 隐式会在编译器在编译阶段自动进行 显示可以避免意外转换,从而产生符合预期的转换方式 显示让代码更明确清晰,提高可维护性 C风格 vs. C++风格 C++ 显示/强制 类型转换运算符,相比于C风格强制转换,它更加规范、清晰 C风格转换 double pi = 3.14159; i...
正、反、双反 斜杠 正斜杠(/): 支持跨平台 反斜杠(\):Windows原生路径分隔符, \也是转义前导字符,用于和后面跟随的字母构成转义字符,因此通常不会直接使用它,而是会使用\ \ 双反斜杠(\ \):一个\后面是\,那么第一个\会起到避免第二个\转义的作用 嵌套类 嵌套类:将一个类的定义放到另一个类中,目的在于隐藏类名(限制用户使用该类建立对象),减少全局的标识符,强调主...
数据类型的大小 长度的单位为字节,右边是可表示的十进制数字范围 不同位系统,long和指针的字节数可能不同 内存五大分区 内核空间:存放操作系统内核代码、内核数据(如进程调度、内存管理……),是不可直接读写的 堆区:存储由程序员动态分配(new/malloc/智能指针……)的对象,存放对象的生命周期是动态的 由于new/delete并不...
底层运算 底层表示 计算机底层是用二进制(0/1)表示的,每个二进制数字用一个位存储,它是最小到的传输单位bit位/比特,最小的存储单位是byte字节 == 8位(因为一个位通常不能表示一个完整的信息) 一个ACSII码(有128个字符,包括数字,字母,通用/控制符号)占一个字节,它是在构建的汇编阶段的编码方式之一,即将这些字符转换为计算机可以理解的二进制码,比如这样的操作’a’ - ...
std::chrono 一个用于处理时间和日期的库 #include <chrono> auto start = std::chrono::steady_clock::now(); //…… auto end = std::chrono::steady_clock::now(); std::chrono::duration<double> diff = end ...
成员访问修饰符 作用 控制着类成员的访问 == 调用权限 分类: public公共:在类内,类外(类定义外),派生类,友元,都可以访问,通常存放对外公开的接口 protected受保护:在类内,派生类,友元可以访问,通常存放在继承体系中可以访问的部分 private私有:只能在类内,友元,可以访问,通常存放对类外隐藏实现的部分 访问修饰符和继承: 注意:访问修饰符...
设计模式 为了让代码更加模块化,降低耦合度,从而更易复用,扩展,组合,提高安全性,简化使用 分类 创建型模式: 指导如何更好的创建对象 结构型模式:指导如何将类和对象封装为较大的结构 行为型模式:指导如何让对象和类之间高效的沟通 单例模式 作用:保证一个类只有一个实例,并提供一个全局访问点来访问这个实例 class Singleton { private: ...