为什么有了C还需要C++

1. C++最早叫:带类(面向对象)的C,最开始只是在C上扩展了class等少量特性,后来不停发展

2.  C++比C语法上复杂很多,语言特性多很多,用好C++比用好C要难

3. C++和C面向的场景不同。C更多是OS内核、底层硬件驱动等,C++是功能中间层

4. 为什么C语言那么多年没有变化,因为那么多年来操作系统没有变化,很多年前我们用寄存器来操作,现在依然如此,硬件没变发生本质性变化,操作系统没有发生本质性变化,因此C语言不需要发生太大的变化。但是C++不一样,C++处在功能中间层,功能要不一样,C++就不一样,可以想一想二十年前游戏啥样,现在游戏啥样。

5. C++为什么没有完全取代C?C++其实是C的一个超级,能用C做的事C++其实都能做,C有的特性C++都有,它们两者都有指针。

(1)C语言有大量成熟代码和成熟开发者,历史优势大。比如linux内核就是用C写的,如果你被C废掉了,那么你就得用C++重新写Linux内核,这个工作量就比较大了。

(2)C++的编译器的效率比C编译器低。不是C++的编译器效率不想去做好,而是做不好,因为C++的语言特性比较复杂,语言的特性越多,语言本身越往上走,那么这个语言的效率就越低,这样语言的对编译器的要求就会变高。Linux内核对效率要求很高,自然就选择了C语言。

(3)C在很多场景下完全够用,没必要用C++,譬如MCU软件开发。杀鸡何必用牛刀。

6. C++并不是为了取代C

(1)C++并不是“更好的C”(不是C语言的优化,而是两个独立的语言),而是基于C的另外一种编程语言和周边生态(依托于这个语言存在的库,最典型就是标准库,C语言有C语言的标准库,C++有C++的标准库,C++的标准库和C的标准库是不一样的,C语言的标准库很简单,C++的标准库就要复查很多,它不但包含C语言的标准库,而且还包含很多东西,比如泛型,模板等),关系在密切也是两个东西。现在的好多语言都是基于C发展而来的,我们称为C语系。

(2)C和C++都能很好的操作硬件,因为他们都支持指针

(3)C更适合小规模控制型程序(典型就是单片机),而C++更适合大规模结构性逻辑型程序

(4)C++的出现不是C推动的,而是硬件性能增强和软件要解决的功能复杂性提升推动的

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值