✨ 一句话感受:C++ 是 C 的进化版,但远不只是“更复杂”。它像是 C 穿上了西装,拥有了现代思维。
作为一个已经写过不少 C 语言代码的人,第一次接触 C++ 时,我几乎下意识地以为:
“它无非就是 C 再加点语法糖吧。”
但很快我就发现,我错了。
C++ 并不仅仅是 C 的延续,而是一种全新的编程思想。虽然它保留了 C 的语法,但它要解决的,是完全不同层次的问题。
C++ 是一门支持多种编程范式的语言。最突出的特点是:
一句话总结:
C++ 让你既能写底层驱动,又能设计高抽象系统。
时间 | ⏳ 事件 |
---|---|
1972 年 | C 语言诞生 |
1979 年 | Bjarne Stroustrup 创建 “C with Classes” |
1983 年 | 正式命名为 C++,意为 C 的“进阶版本” |
1998 年 | C++98,首个 ISO 标准 |
2011 年起 | C++11、14、17、20、23 持续更新,越发现代 |
比较维度 | C语言 | C++ |
---|---|---|
编程范式 | 过程式 | 多范式(面向对象 + 泛型) |
组织方式 | 以函数为核心 | 以类和对象为核心 |
抽象能力 | 几乎没有 | 高度抽象(类、模板、RAII) |
标准库 | 简单的 C 标准库 | 强大的 STL(标准模板库) |
资源管理 | 手动 malloc/free | 构造/析构、智能指针、RAII |
在 C 中实现一个银行账户系统,你可能需要:
struct
存储信息而在 C++ 中,只需设计一个 Account
类,封装数据与操作,甚至还能继承出 VIPAccount
,行为定制更加优雅。
C++ 的本质不是让你写得更复杂,而是:
提供抽象能力,构建更大更复杂的系统。
C 的方式 | C++ 的方式 |
---|---|
struct + function |
class + method |
malloc/free |
new/delete ,或智能指针 |
char[] 字符串 |
std::string |
函数指针 | 函数对象(functor)、lambda 表达式 |
学习 C++ 不要从指针深处、模板花活入手,先学这些实用部分:
vector
、map
、string
类型 | 名称 | 说明 |
---|---|---|
图书 | C++ Primer(第5版) | 面向有基础的入门者,讲解深入浅出 |
图书 | Effective C++ | 相传分为两类,一类是看过的,一类是没有看过的 |
网站 | cppreference.com | 官方参考网站,查询语法利器 |
实战平台 | LeetCode + C++ | 熟悉 STL 使用、锻炼编程思维 |
让我们一起交流、学习、进步!