1.1、为什么有了C还需要C++
C++是由C进化而来:
(1)C++最早叫:带类的C,最开始只是在C上扩展了class等少量特性,后来不停发展;
(2)C++比C语法上复杂很多,语言特性多很多,用好 C++比用好C要难;
(3)C++和C面向的场景不同。C更多是OS内核、底层硬件驱动等,C++是功能中间层;
C++为什么没有完全取代C:
(1)C语言有大量成熟代码和成熟开发者,历史优势大;
(2)C++的编译器效率比C编译器低;
(3)C在很多场景下完全够用,没必要用C++,譬如MCU软件开发;
C++并不是为了取代C:
(1)C++并不是”更好的C“,而是基于C的另一种编程语言和周边生态;
(2)C和C++都能很好的操作硬件,因为他们都是支持指针;
(3)C更适合小规模控制型程序,而C++更适合大规模结构性逻辑性程序;
(4)C++的出现不是C推动的,而是硬件性能增强和软件要解决的功能复杂性提升推动的;
1.2、C++究竟是个怎样的语言
C++是面向对象的:
(1)C++与C最大的不同就是面向对象;
(2)C++并不是纯面向对象语言;
C++兼容C语言的全部特性:
(1)C++有指针,所以很方便直接操作硬件;
(2)C++是编译性语言,最终得到可执行程序是架构相关的二进制机器码;
(3)C++在语法和编程风格上和C非常类似;
(4)C++代码也分头文件和代码文件,只是后缀名和C有不同;
(5)C++比C扩展了很多特性,譬如泛型、引用等;
C++比C更适合复杂项目:
(1)Linux kernel如果改用C++写会更容易写,也更容易看懂;
(2)C++的语法很复杂,学习难度比C和Java都要大;
(3)C++没有GC机制,对象创建和销毁要程序员管理,因此容易出错;
(4)总结:C++适合高手使用在强调性能的复杂项目中;

最低0.47元/天 解锁文章
15万+

被折叠的 条评论
为什么被折叠?



