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的作用相同,都表示“类型名”,二者可以互换。
注:函数模板只适用于函数的参数个数相同,而类型不同,且函数体相同的情况。
本文介绍了C++相对于C语言的几个重要扩展,包括使用"<<"插入运算符进行多字段输出,通过setw控制输出宽度,用const定义具有类型和存储空间的常量,以及强制性的函数原型声明和函数模板的使用,以提高代码的灵活性和编译时的错误检查。

317

被折叠的 条评论
为什么被折叠?



