⾸先, C 和 C++ 在基本语句上没有过⼤的区别。
C++ 有新增的语法和关键字,语法的区别有头文件的不同和命名空间的不同, C++ 允许我们⾃⼰定义⾃⼰的空间, C 中不可以。关键字方面比如 C++ 与 C 动态管理内存的⽅式不同,C++ 中在malloc 和 free 的基础上增加了 new 和 delete,⽽且 C++ 中在指针的基础上增加 了引⽤的概念,关键字例如 C++中还增加了 auto, explicit 体现显示和隐式转换上的概念要 求,还有 dynamic_cast 增加类型安全⽅⾯的内容。
函数方面 C++ 中重载和虚函数的概念: C++ 支持函数重载而C 不⽀持,是因为 C++ 函数的名字修饰与 C 不同, C++ 函数名字的修饰会将参数加在后⾯,例如, int func(int,double)经过名字修饰之后会变成func_int_double,⽽ C 中则会变成func,所以 C++ 中会⽀持不同参数调⽤不同函数。
C++ 还有虚函数概念,⽤以实现多态。
类⽅⾯, C 的 struct 和 C++ 的类也有很⼤不同: C++ 中的 struct 不仅可以有成员变量还可以有成员函数,⽽且对于 struct 增加了权限访问的概念, struct 的默认成员访问权限和默认继承权限都是 public, C++ 中除了 struct 还有 class 表示类, struct 和 class 还有⼀点不同在于 class 的默认成员访问权限和默认继承权限都是 private。
C++ 中增加了模板还重用代码,提供了更加强大的 STL 标准库。
最后补充⼀点就是 C是一种结构化的语言,重点在于算法和数据结构。 C 程序的设计⾸先考虑的是如何通过⼀个代码,⼀个过程对输⼊进⾏运算处理输出。⽽ C++ ⾸先考虑的是如何构造⼀个对象模型,让这个模型能够契合与之对应的问题领域,这样就能通过获取对象的状态信息得到输出。
C 的 struct 更适合看成是⼀个数据结构的实现体,⽽ C++ 的 class 更适合看成是⼀个对象的实现体。