53 lines
1.8 KiB
Markdown
53 lines
1.8 KiB
Markdown
### 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 更清晰的抽象与更安全的结构。**
|
||
|