C++的起源
20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。
他使用过Simula和ALGOL,接触过C。
他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。
既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。
以C为背景,以Simula思想为基础,正好符合他的设想。
1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。
1983年该语言被正式命名为C++。
自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。
第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。
在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards
Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。
在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。
C与C++的区别
- C是面向过程的语言,C++是面向对象的语言。
- 动态管理内存的方法,C是使用malloc/free函数,而C++使用new/delete关键字;
- C中的struct和C++的类,C++的类是C所没有的,但是C中的struct是可以在C++中正常使用,并且C++对struct进行了进一步的扩展,使struct在C++中可以和class一样当做类使用,而唯一和class不同的地方在于struct的成员默认访问修饰符是public,而class默认的是private;
- C++支持函数重载,而C不支持函数重载,而C++支持重载的依仗就在于C++的名字修饰与C不同,例如在C++中函数int fun(int,int)经过名字修饰之后变为 _fun_int_int ,而C是_fun,一般是这样的,所以C++才会支持不同的参数调用不同的函数(C++编译汇编时,会将重载的函数根据参数表,翻译成不同的函数名来实现重载);
- C++中有引用,而C没有;这样就不得不提一下引用和指针的区别;
- C++全部变量的默认链接属性是外链接,而C是内连接;
- C中用const修饰的变量不可以用在定义数组时的大小,但是C++用const修饰的变量可以(如果不进行&,解引用的操作的话,是存放在符号表的,不开辟内存);
- 此外,C++还有的一些特性(封装、继承、多态、泛型)等不一一列举了。
C与C++在一些方面哪个更优秀
技术层面
C占用资源少,运行速度较快。
C++面向对象的设计思想,拥有强大的特性和库,开发效率高。
商业层面
C用于嵌入式开发和操作系统的开发。
C++用于商业软件和网络游戏开发。
参考与引用的网址:
[1].https://baike.baidu.com/item/C++/99272
[2].https://blog.csdn.net/bitboss/article/details/62884694