C++(1)——为什么有C++这门语言
1.为什么有了C还需要C++
1.C++是由C进化而来
- C++最早叫:带类的C,最开始只是在c上扩展了class等少量特性,后来不停发展
- C++比c语法上复杂很多,语言特性多很多,用好C++比C要难
- C++和c面向的场景不同。C更多的是OS内核,底层硬件驱动等。C++是功能中间层
2.C++为什么没有完全取代C
- C语言有大量成熟代码和成熟开发者,历史优势大
- C++编译器效率比C编译器低
- C在很多场景下完全够用,没必要用C++
3.C++出现的必然性
- C++并不是“更好的C”,而是基于C的另一种编程语言和周边生态
- C和C++都能很好的操作硬件,它们都支持指针
- C语言更适合小规模控制型程序,而C++更适合大规模结构性逻辑程序
- C++的出现不是C推动的,而是硬件性能增强和软件要解决的功能复杂性提升推动的
2.C++究竟是个怎样的语言
1.C++是面向对象的
- C++和C最大的不同就是面向对象
- C++并不是纯面向对象语言
2.C++兼容C的全部特性
- C++有指针,所以很方便直接操作硬件
- C++是编译性语言,最终得到可执行程序是架构相关的二进制机器码
- C++在语法和编程风格上和C非常类似
- C++代码也分头文件和代码文件,只是后缀名和C不同
- C++比C扩展了很多特性,例如泛型,引用等
3.C++比C更适合复杂项目
- C++的语法很复杂,学习难度比C和java要大
- C++没有GC(垃圾回收)机制,对象创建和销毁要程序员管理,因此容易出错
- C++适合高手使用在强调性能的复杂项目中
3.C++典型项目和优势领域
1.C++典型项目
- QT和qtcreator(qt的IDE)
- opencv(计算机视觉),opengl(显卡),directX(游戏)
- Windows和office
- Android中间层
2.C++的劣势和优势分析
- C++比c更适合开发规模大,业务复杂的大型项目
- C++比Java,python更适合开发在意性能的大型项目
- C++适合开发后台业务逻辑而不是前台界面
- C++当前最优势领域:视觉和AI分析,游戏和图像引擎,网络服务引擎等
4.C++发展前景
C++在当前及以后的地位
- 理念:语言没有好坏之分,不同场景适合不同语言
- 云计算和边缘计算技术大发展,未来的软件运行场景分三种:云平台,瘦客户端,富客户端
- 云端开发(阿里云等)分前后台,前台用HTML等,后台用Java,python等
- 瘦客户端(家电)用C为主
- 富客户端(手机)不管OS层和HMI层用什么,主体中间层肯定是C++最有优势