1.定义模板
template <typenameT>
2.使用模板
#include<iostream>
template <typename T>
inline T const& max(T const&a,Tconst &b)
{
}
int main()
{
}
3.尝试一下,同时用两个模板当参数
#include<iostream>
template <typename T1>
template <typename T2>
inline T1 const& max(T1 const&a,T2const &b)
{
}
int main()
{
}
编译时会出现错误提示:too many template parameter lists in declaration of`const T1& maxs(const T1&, constT2&)'
4,将程序改动一下
#include<iostream>
using namespace std;
template<typename T>
inline T const& max(T const&a,Tconst &b)
{
}
int main()
{
}
程序也将编译无法通过。错误的提示为:template3.cpp call of overloaded `max(float,float&)' isambiguous
显然出现含糊的重载。这是因为iostream头文件中包含了max函数。不妨去掉我们自己定义的函数,或用std::max(),即可通过编译。