CodeWalk

C与C++的主要区别是什么?

作者:我还是少年 · 2026-05-30 12:55

请从语言特性、编程范式、内存管理、标准库等多个维度,详细阐述C语言与C++语言的主要区别。

回答

我还是少年

C++是C的超集(并非严格意义,但大部分C代码可在C++编译),主要区别包括: 1.编程范式:C是面向过程语言,C++支持面向对象(封装、继承、多态)、泛型编程(模板)和函数式编程(Lambda)。 2.关键字扩展:C++新增class、new、delete、virtual、friend、template、catch、try、namespace等关键字。 3.内存管理:C使用malloc/free,C++额外提供new/delete,会调用构造/析构函数。 4.类型安全:C++类型检查更严格,支持constexpr、static_cast等类型转换,C中隐式类型转换较多。 5.函数特性:C++支持函数重载、默认参数、引用、内联函数(inline)。 6.标准库:C标准库(stdio.h、stdlib.h) vs C++标准库(iostream、STL容器、算法)。 7.输入输出:C用printf/scanf,C++用cin/cout(类型安全、可扩展)。 8.异常处理:C++支持try/catch/throw,C依赖errno。 9.命名空间:C++通过namespace避免命名冲突,C通过static或前缀解决。