C++ 目前的应用领域
- 目前常见的桌面应用软件
QQ、网易云音乐 - 基础软件和高级语言的运行时程序
大型数据库软件、Java虚拟机、Python编译器 - 业务性应用软件的后台
游戏服务器后台
C++ 存在的特点
- C++ 整套的语法不具备“功能完备性”,单纯地使用这门语言本身提供的功能无法创建任何有意义的程序,必须借助操作系统的 API 接口函数来达到相应的功能。
- C++ 语言需要直接使用操作系统的接口功能,这就造成了 C++ 语言繁、难的地方。
- 在应用层开发,直接使用操作系统接口的函数,往往执行效率高、控制力度大。
C++ 的前端(客户端)开发和后端开发
cpp的前端和后端开发并没有优劣之分,二者的区别主要在于侧重点以及开发的思维不同。
前端开发一般有较多的界面逻辑,直接与客户交互,因此侧重点在于界面的易用性和流畅性。
对于后端开发,其主要目的则在于为客户端提供高效的服务,因此侧重点在于请求响应的正确性、及时性以及流畅性。
C++11/14/17/20标准
对于C++11,应当了解一些常用的知识点:
- auto 关键字
- for-each 循环
- 右值及移动构造函数 + std::forward + std::move + stl 容器新增的 emplace_back() 方法
- std::thread 库、std::chrono 库
- 智能指针系列(std::shared_ptr/std::unique_ptr/std::weak_ptr)
- 线程库 std::thread + 线程同步技术库 std::mutex/std::condition_variable/std::lock_guard 等
- Lamda 表达式(Java 中现在也常常考察 Lamda 表达式的作用)
- std::bind/std::function 库