摘要: 运算符重载也是编译期完成解析的。它和函数重载非常像,因为: 重载运算符本质上就是一个特殊名字的函数调用。 例如: a + b 如果 a 或 b 是类类型,编译器会尝试把它解释成类似: a.operator+(b) 或者: operator+(a, b) 1. 运算符重载的本质 比如你写: struc 阅读全文
posted @ 2026-05-05 17:11 BATTAB 阅读(3) 评论(0) 推荐(0)
摘要: 模板在那个阶段起作用呢? 已有知识 我们知道,cpp源文件,要经过 预处理 编译 汇编 链接,这么几个阶段生成一个静态程序。 那么模板作用在哪个阶段呢? 预处理阶段, 主要进行,宏命令等操作; 汇编 链接,都是要生成 目标文件的。 是的,答案在编译阶段。 那么编译阶段又分为 词法分析,语法分析,语义 阅读全文
posted @ 2026-05-05 16:26 BATTAB 阅读(1) 评论(0) 推荐(0)
摘要: 时间戳是什么? 一个整数,距离一个 约定好的时间 已经过去的时间,这里时间的单位可以是 s ms us ns. 不同语言或者业务场景中, 会根据需要使用不同的精度; lua 默认的os库就是以s C# ms 时间戳 = 从某个固定起点开始,经过了多少时间 想要统一的怎么办? 没有统一的, Unix系 阅读全文
posted @ 2026-05-05 16:15 BATTAB 阅读(3) 评论(0) 推荐(0)
摘要: 在看 这篇文章时,上面的公式没明白,这里做笔记记录一下。 这里表达的是:用一个“判别变量 d”来画直线,每次不用重新代入直线方程算,而是用增量更新。 它本质上是在讲 Bresenham / 中点画线算法。 1. 这条直线先被写成隐式方程 图里给了: \[f(x,y)=(y_0-y_1)x+(x_1- 阅读全文
posted @ 2026-05-01 21:56 BATTAB 阅读(10) 评论(0) 推荐(0)
摘要: 前言 最近在学习 Phong 光照模型时,遇到了一个看起来很“凭空出现”的公式: \[R = 2(N \cdot L)N - L \]它用来计算镜面反射方向。 一开始看到这个公式,感觉有点突兀: 为什么是 \(2(N \cdot L)N - L\)? 这个 2 是哪里来的? 点积 \(N \cdot 阅读全文
posted @ 2026-05-01 15:40 BATTAB 阅读(3) 评论(0) 推荐(0)
摘要: 学习方法可以总结成: 从“原始问题”出发的发明式学习法 它不是先背概念、背公式、背术语,而是把自己放到知识诞生之前,假装我们什么都没有,然后一步步问: 如果我是当时的人,我会先遇到什么问题? 我会怎么观察现实? 我会提出什么朴素规则? 这个规则哪里不够? 为了解决新问题,我又会发明什么? 也就是: 阅读全文
posted @ 2026-05-01 14:32 BATTAB 阅读(4) 评论(0) 推荐(0)
摘要: 你不是想“记住 shared_ptr 长什么样”,而是想知道: 如果我站在设计者的位置,只拿着需求,一步步会被逼到今天这个结构吗? 这才是真正学会。 那我们现在不直接讲“控制块是什么”。 我们换一种方式: 从 0 开始设计一个“可共享所有权”的智能指针。 我会严格按“动机 → 冲突 → 决策 → 新 阅读全文
posted @ 2026-04-22 21:22 BATTAB 阅读(5) 评论(0) 推荐(0)