|
||||
|
函数的多态,虚拟函数,函数重载,运算符的重载其实都是同一个概念,即同一个函数名或运算符,具有不同的功能。函数重载和运算符重载是编译器能识别的,因此在编译时将它们变成了不同的函数,所以把重载称为编译时的多态。虚拟函数的多态在编译时不能识别,运行时才表现出不同功能,称为运行时的多态。这是需要熟练掌握的内容。 从模板扩展到标准模板库(STL),使C++语言实用功能一下子增加了许多。早期C++还不支持的名字空间,这使得C++在发展了几十年后仍能跟上时代潮流。例外处理是大工程项目必需的功能,也是C语言在开发大项目方面的缺陷之一。实时类型取得(Run-Time Type identification)和类型强制符(dynamic_cast)更是C语言没有的,此外,在输入出方面C++还增强改进了许多功能。 纵上所说,小雅都将和大家一起由浅入深,共同学习、探讨,直到真正学会为止,对小雅自己也是提高的过程。本章的下面要列举的是C和C++大同小异部分。 一、书写风格
小雅在C语言教程中使用的注释其实是C++的风格,这一点在醒目的位置有明确说明,标准C语言(ANSI C)的注释只有“/* ... */”,UNIX中许多用的是ANSI C。另外,如果没有参数,C语言建议使用void,而C++建议不写。 /* C语言中取消既存的功能,下面是错误的 */ //| /* C++语言中取消既存的功能,下面是正确的 */ /* //| /* 二、变量和函数原型的申明
C语言中函数的原型申明是被建议的,但调用处后面的函数的确可以不申明。C++中则不论函数定义的先后,必须事先申明。另一方面,局部变量的定义,C语言要求必须在函数体的开始部分,某一语句之后再定义变量是错误的,而C++则没有这一限制。 //void myFunc(void) //C语言中这句省略不出错 //| 三、其它不同点
C++语言是C语言扩展而来,C程序自然可以直接使用,但的确仍有一些不同之处。
四、C++语言的新旧版本
C++语言自身也在发展,新旧版本的写法上也有所不同。小雅的教程并不讨论语言的发展过程,所以只讲新内容。这也是与时俱进吧。 名字空间是防止名称冲突而申明的“领域”,打个比方,C盘中文件增多就有可能有相同的文件名,这样我们就必须用目录来管理,将相同文件名放在不同的目录里就可以了。当目录名逐渐增加,也有重复名称时,一是再增加父目录,另一办法就是将相同目录名放在不同的盘符下。有关名字空间后面有专门章节讲解。 //旧版本的写法 //| //新版本的写法 五、控制台的输入出
C语言的控制台输入出是用函数来实现的,最常用的是printf()和scanf()函数。C++语言中一般使用运算符“<<”和“>>”,这比C语言中的函数的功能更强大、更方面,下面只介绍基本使用,更强大的功能要等学完了“类”之后才讲解,这样更容易理解。 C语言中运算符“<<”和“>>”是位操作运算符,C++中仍然有效,而用作输入出时,最前面必须是cin或cout,表示从控制台输入或输出,cin和cout是C++定义好的输入出流。输出时当需要回车时,可以用“\n”,也可以用“endl”。
|
[发布者:] | |||
|