第九章
模板template
template <模板参数表> 函数值类型 函数名 (参数表)
{
函数体
}
其中,参数表为:<class T1, class T2, … , class Tn>
比如这个求最小值的函数
template<class T> T mindt (T x, T y)
{
T mv
mv=(x<y) ? x : y;
return mv;
}
注意,里面的class必须要在开头的参数表中声明好
还可以生成类模板
template <模板参数表>
class 类名
{
数据成员
成员函数
};
注意 调用的时候一定要写好了注册的是什么类型,不然怎么知道咋生成??
类名<int> X;
外部定义成员函数的时候也要加上第一行tem…
名称空间(书上没有)
作用:解决同名冲突
命名空间可以在一个命名空间里,也可以是全局的 ,但是不允许出现在代码块里!!
命名空间是开放的,允许多段同时定义一个namesapce
匿名的命名空间,声明完就用
namespace调用方法:1.namespace x::变量/函数
2. using namespace x
这样就把namespace里的全都用了
如果有函数
namespace a{
int x=1;
}
int main()
{
int x=3;
}
想要用main里的x就直接写,用a里的就a::x
存在情况:全局里有namespace,全局中声明了一个名称一样的变量,那么会报错(namespace和声明的变量优先级一样时)