C with classes

This commit is contained in:
e2hang
2025-12-31 00:39:23 +08:00
commit a047893756
198 changed files with 11173 additions and 0 deletions

52
readme.md Normal file
View File

@@ -0,0 +1,52 @@
### C-With-Classes
## 说明型(偏定义、适合写文档/博客)
**C-With-Classes** 指的是一种编程风格,而非严格意义上的语言或标准。
它以 **C 语言为基础**,仅引入 **C++ 中最核心的“类”机制**(如 `class`、构造函数、析构函数、访问控制等),同时**刻意回避或极少使用** C++ 中复杂的特性与庞大的标准库(如模板元编程、复杂 STL、异常机制、RTTI 等)。
在这种风格下:
* 程序整体仍然呈现出 **C 的结构化与过程化特征**
* 类更多被视为一种 **“结构体 + 约束 + 生命周期管理” 的增强**
* C++ 只是作为 **更安全、更可控的 C** 来使用
其目标通常是:
> 在保持代码可预测性、可读性和底层可控性的同时,
> 获得最基本的面向对象抽象能力。
---
## 程序员理解型(偏口语 / 偏“老 C 派”)
所谓 **C-With-Classes**,本质上就是:
> **“我想写 C但我又不想自己手搓 vtable 和 init / destroy 函数。”**
它不是为了用尽 C++ 的所有能力,而是:
* 只用 `class`、构造 / 析构
* 可能用 `new/delete`,但不用智能指针
* STL 能不用就不用,最多 `std::string`
* 不碰模板地狱、不搞元编程、不信异常
在这种写法里:
* 类 ≈ `struct + 函数 + 约束`
* 对象 ≈ “带生命周期的 C 结构体”
* 继承更多是 **代码组织手段**,而不是多态炫技
你写出来的代码:
* 编译后 **像 C 一样直白**
* 调试时 **栈帧干净、汇编可读**
* 心里有底,不怕“语言在背后偷偷干了什么”
---
## 一句话总结(可以当结尾用)
> **C-With-Classes 并不是 C++ 的退化版本,而是一种克制的选择:
> 它用最小的 C++ 成本,换取比 C 更清晰的抽象与更安全的结构。**