C的抽象程度低,可以认为是high-level语言系列中的汇编语言。
当然,它能做其他high-level语言能做的任何事情,只是可能做得比较费劲、繁琐。
就像用x86汇编语言、机器指令能做C、C++做的任何事情一样,但要自己实现很多细节,包括构建building block(轮子)。
比如:
1、要实现运行时的多态,C需要自己定义构建函数表,C库openssl里有不少这种表。
而c++只要override virtual成员函数就行了,vtbl之类的细节由编译器搞定。
2、要分配释放内存,C需要malloc/free,而且每个early return时都要手动插入free语句,是error-prone的。
而c++只要make_unique<T>()就能搞定分配和释放,而且不容易出错。
类似的很多,cpp core guidelines里有很多针对性的rule描述
【 在 flyren911 的大作中提到: 】
: C到底差在哪?学起来简单直接,C++感觉把语法学会人都老了。
:
--
FROM 221.220.171.*