C++对C语言的扩充之一

本文介绍了C++相对于C语言的几个重要扩展,包括使用"<<"插入运算符进行多字段输出,通过setw控制输出宽度,用const定义具有类型和存储空间的常量,以及强制性的函数原型声明和函数模板的使用,以提高代码的灵活性和编译时的错误检查。

1、可以在一个输出语句中使用多个“<<”插入运算符将多个输出项插入到输出流cout中,“<<”运算符的结合方向为自左向右,因此各输出按自左向右顺序插入到输出流中。注意,每输出一项要用一个“<<”符号。最重要的是输出的并未制定数据的类型(如浮点型,整型等),系统会自动按数据类型输出。(cin同理)

2、若要指定输出所占的列数,可以用控制符setw设置。若使用setw,必须包含头文件iomainip.h。例如,setw(5)的作用是为其后面一个输出项预留5列,如输出项不足5列,则数据向右对齐,若超过5列,则按实际长度输出。

3、在C语言中,我们常用#define命令来定义符号常量,如#define PI 3.14159,实际上,这只是在预编译时进行字符置换,把程序中出现的字符串PI全部置换为3.14159。在预编译之后,程序中不再有PI标识符。PI不是变量,没有类型,不占用存储单元,且易出错。

       如:

             int a=1;b=2;

             #define PI 3.14159

             #define R a+b

             cout << PI*R*R <<endl;

注:此时程序输出的并不是3.14159*(a+b)*(a+b),而是3.14159*a+b*a+b。程序因此出错。

       在C++中,提供了用const定义常变量的方法。

       如:

             const float PI=3.14159;

       这定义了常变量PI,它具有变量属性,有数据类型,占用存储空间,有地址,可以用指针指向它,只是在程序运行期间此变量的值固定不变。一般把程序中不允许改变值的变量定义为常变量。

4、在C++中,如果函数调用的位置在函数定义之前,则要求在函数调用之前必须对所调用的函数作函数原型声明。这是强制性的,目的是使编译系统对函数调用的合法性进行严格的检查。

      函数声明的一般形式为:

      函数类型  函数名(参数表);

      参数表一般包括半数类型和参数名,也可以只包括参数类型而不包括参数名。

      如:

             int max(int x,int y);

             int max(int , int );   //这两种方法是等价的。

      在编译时只检查函数类型,并不检查参数名。

5、C++提供了函数模板(function template)。函数模版实际上是建立一个通用函数,其函数类型和形参不具体指定,用一个虚拟的类型代表。

      定义函数模板的一般形式为:

      template <typename T>           或               template <class T>

      template 含义为“模板”,尖括号中先写关键字typename(或class),后面跟一个类型参数T。

      class 和 typename的作用相同,都表示“类型名”,二者可以互换。

注:函数模板只适用于函数的参数个数相同,而类型不同,且函数体相同的情况。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值