跳至内容
ayh的博客

ayh的博客

  • 首页
  • test
  • 数据结构
    • B/B+树
    • hash, 布隆过滤器
    • 红黑树
    • 二叉树
  • 操作系统
    • epoll
    • 线程
  • 设计模式
    • 创建型设计模式
    • 结构型设计模式
  • C++
    • C++Primer
    • C++新特性
    • C++ effective
  • 算法
    • 背包问题
    • 动态规划
    • 暴力
    • 枚举
  • 基础组件设计
    • 池式组件
  • Linux工程管理
    • 分支管理
      • git
  • 英语
    • 语法
  • 高性能网络
    • 网络编程

月度归档: 2025 年 12 月

Item31–将文件间的编译依存关系降至最低

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

核心痛点:编译级联 (Compilation Cascades) 在 C++ 中,如果头文件 A.h #inc … 阅读更多

分类 C++ effective 发表评论

Item30–透彻了解 inlining 的里里外外

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. Inlining 的本质:以空间换时间 inline 函数背后的思想是:将“函数调用”替换为“函数本体代 … 阅读更多

分类 C++ effective 发表评论

Item29–为“异常安全”而努力是值得的

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 灾难现场:一个“不安全”的函数 假设我们要在多线程环境下更换一个 GUI 菜单的背景图片: class … 阅读更多

分类 C++ effective 发表评论

Item28–避免返回 handles 指向对象内部成分

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 什么是 “Handle”? 在这里,Handle(句柄)是一个广义的概念,不仅仅 … 阅读更多

分类 C++ effective 发表评论

Item27–尽量少做转型动作

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 语法选择:抛弃 C 风格,拥抱 C++ 风格 C 语言的旧式转型(C-style casts)长这样: … 阅读更多

分类 C++ effective 发表评论

Item26–尽可能延后变量定义式的出现时间

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 核心层级:为什么要延后? 在 C 语言(特别是 C89)的旧习惯中,开发者往往喜欢在函数开头把所有变量都 … 阅读更多

分类 C++ effective 发表评论

Item25–考虑写出一个不抛异常的 swap 函数

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 核心现状:默认的 std::swap 够用吗? 绝大多数情况:够用(Rule of Zero) 如果你的 … 阅读更多

分类 C++ effective 发表评论

Item24–若所有参数皆需类型转换,请为此采用 non-member 函数

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 核心场景:混合算术运算 为了讲解这个条款,我们依然使用经典的 有理数类 (Rational),并希望支持 … 阅读更多

分类 C++ effective 发表评论

Item23–宁以 non-member、non-friend 替换 member 函数

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 直觉 vs. 现实 我们的直觉(通常是错的) 在面向对象设计中,我们习惯把数据和操作数据的函数打包在一起 … 阅读更多

分类 C++ effective 发表评论

Item22–将成员变量声明为 private

2025 年 12 月 20 日2025 年 12 月 15 日 作者 ayh

1. 语法一致性 (Syntactic Consistency) 这是最浅层的理由,但对使用者体验很重要。 如 … 阅读更多

分类 C++ effective 发表评论
较早文章
较新文章
← 上一页 页面1 … 页面6 页面7 页面8 … 页面15 下一页 →

归档

  • 2026 年 1 月 (4)
  • 2025 年 12 月 (143)
© 2026 ayh的博客 • Built with GeneratePress