摘要: 一、常见的初始化方式 与赋值不同,C++ 的初始化规则较为复杂。C++ 提供了 5 种常见的初始化形式: int a; // 默认初始化(无初始值) // 传统初始化形式: int b = 5; // 拷贝初始化(等号后给出初始值) int c ( 6 ); // 直接初始化(圆括号内给出初始值,显 阅读全文
posted @ 2026-04-21 11:16 noonafter 阅读(8) 评论(0) 推荐(0)
摘要: 本文是C++ 初始化方式与类型分类的续篇,建议先阅读前文了解 C++ 的初始化方式和类型分类。 一、初始化与赋值的本质区别 C++ 中,初始化和赋值在概念、底层实现和性能上存在本质差异。 概念层面: - 初始化:伴随对象的诞生,在对象获得内存空间时确定其初始状态 - 赋值:发生在对象已存在之后,抹除 阅读全文
posted @ 2026-04-21 11:16 noonafter 阅读(6) 评论(0) 推荐(0)
摘要: 一、nullptr 的类型 nullptr 是 C++11 引入的字面值常量,用于表示空指针。与所有字面值常量一样,nullptr 具有明确的类型:std::nullptr_t。 std::nullptr_t 是 C++ 的基础类型之一,定义在 <cstddef> 头文件中。该类型具有以下特性: 隐 阅读全文
posted @ 2026-04-21 11:16 noonafter 阅读(6) 评论(0) 推荐(0)
摘要: 一、三方分支模型 Git 是分布式版本控制系统。在与远程仓库通信时,涉及三个层次的分支: 本地分支 (main) ↕ merge / rebase 远程跟踪分支 (origin/main) ← 本地只读镜像 ↕ fetch / push 远程分支 (远端的 main) 角色 存在位置 可直接提交 示 阅读全文
posted @ 2026-04-21 11:16 noonafter 阅读(18) 评论(0) 推荐(0)
摘要: 一、数据模型:commit 与 DAG commit 是快照,不是差异记录。每次提交,Git 保存当前所有文件的完整状态,并生成一个唯一的 SHA-1 哈希值作为标识。 Git 的提交历史是有向无环图(DAG, Directed Acyclic Graph),而非链表。图中每个节点(commit)持 阅读全文
posted @ 2026-04-21 11:16 noonafter 阅读(4) 评论(0) 推荐(0)
摘要: 引言 C++的值传递、引用传递和指针传递在源码层面看似简单,但其底层实现机制存在本质差异。本文通过分析 g++ 生成的汇编代码,深入剖析这三种传递方式的实现原理,搞清楚编译器到底是如何处理对象的构造、拷贝与析构过程。 实验代码设计 为了观察参数传递的底层行为,设计了一个包含构造函数、拷贝构造函数和析 阅读全文
posted @ 2026-04-01 14:08 noonafter 阅读(11) 评论(0) 推荐(0)
摘要: 硬件基础:CPU 与内存(第 1-6 章) CSAPP在第6章之前,主要结合汇编介绍计算机硬件工作方式,涉及硬件主要包括CPU、内存。这个时候,主要使用汇编/机器码与裸机打交道。 CPU向上提供的一套指令集,叫指令集架构(ISA),规定了CPU上能够运行的指令,ISA与CPU强相关,因此,也可用所支 阅读全文
posted @ 2026-04-01 14:08 noonafter 阅读(10) 评论(0) 推荐(0)
摘要: 多态的本质定义 在软件工程领域,多态(Polymorphism) 指的是使用统一的方式来处理不同类型的数据。 然而,目前网络上大量技术博文将多态狭义地等同于"通过父类指针调用子类方法"的动态绑定机制,这种理解仅涵盖了多态概念中的动态多态,忽略了多态在类型系统中更为宏观的分类体系。 Polymorph 阅读全文
posted @ 2026-04-01 14:08 noonafter 阅读(3) 评论(0) 推荐(0)
摘要: 工具定位与设计哲学 Cppcheck 是一款专注于 C/C++ 代码静态分析的开源工具,其核心设计理念是与编译器形成互补关系。编译器的职责在于检测语法错误、类型不匹配等编译期可见问题,而 Cppcheck 则聚焦于编译器无法捕获的逻辑缺陷、潜在运行时错误以及代码质量问题。 检查能力 自动变量检查 C 阅读全文
posted @ 2026-03-27 16:55 noonafter 阅读(58) 评论(0) 推荐(0)
摘要: 问题背景 C++ 静态分析工具如 cppcheck 在实际使用中存在明显的使用门槛:开发者需要记忆复杂的命令行参数、手动配置项目路径、处理大量冗余输出信息。这些问题在将静态分析工具集成到 AI 辅助开发工作流时尤为突出。 cppcheck 的原始输出通常包含数千行信息,其中大量为 informati 阅读全文
posted @ 2026-03-27 16:55 noonafter 阅读(35) 评论(0) 推荐(0)