C++_静态类型、动态类型
静态类型 概述 静态类型是一个表达式在编译期就确定的类型,它由声明决定,永远不会改变 示例 无论运行时 p 实际指向什么,p 的静态类型始终是 Animal*,这是编译器在词法分析阶段就锁死的 什么时候确定 编译期,词法/语义分析阶段 编译器看到变量声明时,立刻将类型信息记入符号...
静态类型 概述 静态类型是一个表达式在编译期就确定的类型,它由声明决定,永远不会改变 示例 无论运行时 p 实际指向什么,p 的静态类型始终是 Animal*,这是编译器在词法分析阶段就锁死的 什么时候确定 编译期,词法/语义分析阶段 编译器看到变量声明时,立刻将类型信息记入符号...
模板 概述 C++模板是一个强大的编程工具,使得可以编写通用的、类型安全的代码 模板主要用于函数和类的泛型编程,允许你定义通用算法和数据结构,然后在需要时使用具体类型进行实例化 使用场景 通用算法: 模板允许你编写通用算法,如排序、搜索等,而无需针对每种类型重复实现 容器类: 标...
控件注册机制 使用 TplSWindowFactory NewWindow只会在SOUI模块中调用。 对象的释放 TObjRefImpl里有个虚函数OnFinalRelease。 SWindow和SSkinObjBase是在SOUI中实现的,因此派生这两个类的新的控件类以及皮肤类...
变量的读取 概述 一般来说,读取一个变量的内容,是从内存里面去取的 但是,在编译时启用优化选项后,编译器可能会对代码进行优化,以提高执行效率 优化手段-寄存器 一个常见的优化手段就是将一些频繁访问的变量存储在CPU寄存器中,而不是每次都从内存中读取 这种优化可以大幅度提升程序的性...
内存模型 对象和内存位置 在一个C++程序中的所有数据都是由对象(objects)构成。 无论对象是怎么样的一个类型,一个对象都会存储在一个或多个内存位置上。 每一个内存位置不是一个标量类型的对象,就是一个标量类型的子对象,比如,unsigned short,my_calss*或...
static_cast 用来完成编译器认可的隐式类型转换。 任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。 范围: 基本数据类型之间的转换。 派生体系中向上转型:将派生类指针或引用转化为基类指针或引用。 任意类型指针与void*之间的转换...
组织与策略 不拘泥小节 大括号位置 空格和制表符 匈牙利记法 单入口,单出口 高警告级别 第三方头文件 未使用的函数参数 定义了从未使用过的变量 变量使用前可能未经初始化 遗漏了return语句 有符号数、无符号数不匹配 自动构建系统 增量构建 完全构建 版本控制系统 版本空值系...
概述 微软开发的 C++ ETW(Event Tracing for Windows)库,专为简化Windows事件跟踪开发而生 核心功能 封装底层ETW API,提供面向对象接口 支持用户态和内核态事件跟踪 提供事件模式解析、数据提取等高级功能 支持同步/异步事件处理模式 ke...
概述 简述 在关联容器中,对象的位置取决于和它关联的键的值 键可以是基本类型,也可以是类类型 map map容器的元素是pair<const K,T>类型的对象,这种对象封装了一个T类型的对象和一个与其关联的K类型的键 不允许有重复的键,可以保存重复的对象 容器中的元...
获取 通过一个COM接口的方式获取到一个管理器对象 ThreadHelper 是一个抽象类,接口run是抽象的 start 作为抽象基类,实现了start 主要功能是创建了一个线程(是跨平台的实现), 然后创建了一个Helper,调用了run run里面开始往列表里放数据 wai...
搜索当前标签