2.6函数重载
2.7定义并使用模板函数
模板函数:可以看做一个基础函数,基础函数的参数(全部或者部分)不定,先使用占位符占位,后面再确定,从头到尾函数也只是使用了一次,根据模板函数可以生成参数类型不同的多个函数,可以分别使用这些函数。
函数重载:可以看做是实现代码不同但是工作内容相似的函数加以重载,就是实现相同功能的函数在对不同类型、数量对象的多次使用。重载是多次的使用函数,函数的参数类型、数目、顺序三者至少一种不同
模板函数只是能生成多个函数,每次只能生成一个,函数重载是一个同名函数用好多次,所以模板函数也是可以重载的。
函数重载示例
void display(char ch);
void display(const string&);
void display(const string&,int);
void display(const string&,int,int);
模板函数示例
template <typename elemType>
void display(const string &msg,
const vector<elemType>&vec)
{
cout << msg;
for( int ix = 0; ix < vec.size();++ix)
{
elemType t = vec[ix];
cout << t << ' ';
}
}
关键字template,后面跟<>,里面是多个标识符,代表希望推迟的数据类型。