函数模块,就是建立一个通用函数,要求调用函数参数个数要相同而类型可以不同,用一个虚拟的类型代替具体的数据类型。
如:template <typename T>
T max (T a, T b, T c)
{if (b > a) a =b ;
If ( c > a) a = c ;
return a ;
}
其中typename 是类型名 ,也可以用class 代替 ,作用是一样的。
可以使用多个参数类型,如:template < class T1, typename T2>
默认参数的函数
在函数声明的时候添加,形参与实参从左至右结合,默认的参数必须放在形参表列的最右端。
如:void f1 (float a, int b = 0 ,int c)
void f1 (float a, int c
注意:(1)不同把一个函数同时声明为重载函数和默认函数
(2)如果函数的定义在函数调用之前,则应在函数定义中给出默认值。如果函数的定义在函数调用之
如果在同一个文件中,局部变量和全局变量同名,在局部变量的作用范围内,全局变量被屏蔽。
变量属性小结:
一个变量除了数据类型外,还有3中属性:
(1)
(2)
(3)
下面从不同的角度分析他们的联系:
(1)
局部变量分为:
全局变量分为:
(2)
(3)
静态局部变量在自己函数外也是存在的,但不是其作用域,不可以被使用。
静态外部变量也是一样的道理。
函数的声明是函数的原型,不需要建立存储空间。
函数的定义是函数功能的确立,需要建立存储空间。extern 只做声明,而不是定义。
C++提供的预处理功能主要有以下3种:
(1)
(2)
(3)
这些命令以“#”开头,而且末尾不包含分号。
内置函数的定义和调用它的函数要在一个文件中。