C 语言和 C++ 的区别
C++ 在 C 语言的基础上进行了扩展,不仅新增了许多关键字和语法,还支持自定义命名空间。最本质的区别在于引入了类的概念,而 C 语言仅有 struct。在访问权限控制上,struct 的默认访问权限和继承权限都是 public,但 class 的默认访问权限和默认继承权限则是 private。
此外,C++ 引入了封装、继承、多态、模板、重载以及异常处理机制等高级特性,这些是 C 语言所不具备的。在内存管理方面,C 依赖 malloc/free 函数,C++ 除了支持这些外,还提供了更高级的 new/delete 关键字。虽然 C++ 兼容 C 语言,但由于面向对象特性和一些高级功能的开销,在某些极端场景下性能可能略低于纯 C 实现。总体而言,C 侧重面向过程,C++ 则更注重面向对象设计。
C++11 引入哪些新特性
自动类型推断通过 auto 关键字实现,编译器会根据变量初始化表达式的类型自动推导,这使得代码更具灵活性和可读性。范围 for 循环允许直接遍历容器中的每个元素,简化了迭代操作,有效减少了代码量。智能指针如 std::shared_ptr 和 std::unique_ptr 的引入,帮助开发者更好地管理动态分配的内存,从而避免内存泄漏和悬挂指针等问题。


