C++相对C的主要特点和发展
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 09:33:14
C++相对C的主要特点和发展
C++相对C的主要特点和发展
C++相对C的主要特点和发展
简单地说,C++和C的主要区别在于,C是面向过程的,而C++是面向对象的,C++主要比C多了继承,多态,模板等特性;在发展方向上,C++倾向于用来开发一些大型的软件,而C倾向于用来开发和硬件有关同时又要求效率的过程式软件开发,在使用人数上,目前C占绝对的优势.
下面是详细的介绍:
1.C++和C的关系:
C语言之所以要起名为“C”,是因为它是主要参考那个时候的一门叫B的语言,它的设计者认为C语言是B语言的进步,所以就起名为C语言;但是B语言并不是因为之前还有个A语言,而是B语言的作者为了纪念他的妻子,他的妻子名字的第一个字母是B; 当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增加class关键字和类,那个时候有很多版本的C都希望在C语言中增加类的概念;后来C标准委员会决定为这个版本的C起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的++运算符来体现它是C语言的进步,故而叫C++,成立了C++标准委员会.
2.C++的发展和特点:
• C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言.
• C++设计成直接的和广泛的支援多种程序设计风格(程序化程序设计、资料抽象化、面向对 象程序设计、泛型程序设计).
• C++设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误.
• C++设计成尽可能与C兼容,籍此提供一个从C到C++的平滑过渡.
• C++避免平台限定或没有普遍用途的特性.
• C++不使用会带来额外开销的特性.
• C++设计成无需复杂的程序设计环境.
出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里.关于此类话题,C++之父的《C++语言的设计和演化》 里做了详尽的陈述.
3..两者的效率差别:
C++与C的效率往往相差在正负5%之间.所以有人认为在大多数场合C++ 完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接操作硬件的地方还是要使用C语言).
4.C是C++的子集:
C++包括:
1、C子语言.C++支持C语言的几乎全部功能,在语法上与C语言仅有极微妙的差别(如括号表达式的左右值性,具体请参考C++标准文献).
2、面向对象的C++(Objective C++).C++语言原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如Java等语言的发展成熟,C++语言也开发出了支持面向对象功能的版本,现在编程者常用的VC++就是一种面向对象的语言.
3、泛型编程语言.C++强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率.
4、STL(C++标准模板库,Standard Template Library).随着STL的不断发展,它已经逐渐成为C++程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎.
此外,包含在TR1等中的C++0x将实现的新功能在开发和测试中.