参加工作7年了,作为一个全栈码农,工作中C++、Java、Python、Lua甚至前端Javascript都有涉及,但是自己私下都是用C/C++做项目(包括个人网站后台都是用C++开发的)。
在我的技术认知范围内C/C++能完成一切任务,我偏执地用C++实现个人笔记网站(https://www.winfengtech.com),甚至开发了一个cppshell将C/C++当作脚本语言来使用,言归正传,下面单纯从语言层面说一说我为什么使用C++。
无运行环境的拖累
在运行Java、Python等应用前你需要安装对应的运行环境或虚拟机,然而常见操作系统自带C/C++运行环境,你可以发布C/C++程序给小白用户使用,这也是桌面应大多用C++开发的原因之一。
直接调用操作系统原生API
操作系统都提供原生C语言API,在C++中你可以直接调用这些API函数。你也可以用C++的抽象能力实现类库的核心功能,然后提供C语言接口编译成动态库方便Java、Python、Lua等语言调用。
析构函数精确控制成员的生命周期
比如说一个对象打开了一个文件,可以在对象的析构函数中关闭这个文件,这样就将文件的生命周期与对象生命周期绑定,我们不用显式调用文件的close方法,从而达到对象销毁时自动关闭文件的目的,C++中的std::lock_guard类在管理锁资源时有异曲同工之妙。
魔性的运算符重载
忘记compareTo吧,在C++中你是这样比较字符