Files
CWithClasses/readme.md
2025-12-31 00:39:23 +08:00

53 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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