C 语言和 C++ 的区别
- C++ 有新增的关键字和语法,还允许自定义命名空间。
- C++ 新增类的概念,C 语言中只有 struct 的概念。C++ 中添加访问权限概念,struct 的默认访问权限和继承权限都是 public,但是 class 的默认访问权限和默认继承权限都是 private.
- C++ 引入了类、封装、继承、多态、模板、重载、异常处理机制等特性。而 C 没有
- C 使用
malloc/free函数,C++ 除了这些外,还支持更高级的new/delete关键字。 - C 语言更看重面向过程,C++ 注重面向对象。
- C++ 是基于 C 语言发展而来,因此 C++ 基本完全兼容 C 语言。
- 由于 C++ 面向对象特性和支持一些高级特性,相比 C 语言,在某些情况下会带来额外开销,性能差一点。
C++11 引入哪些新特性
- 自动类型判断:引入了 auto 关键字,可以根据变量初始化表达式的类型自动推断变量的类型,使得代码更具灵活性和可读性。
- 范围 for 循环:通过 for (element : container) 语法,允许直接遍历容器中的每个元素,简化了迭代操作,减少了代码量。
- 智能指针:std::shared_ptr 和 std::unique_ptr 等智能指针类的引入,帮助管理动态分配的内存,避免内存泄漏和悬挂指针等问题。


