写几个show()
函数
一些声明
void show(job a, job b);
template <typename T>
void show(T a, T b);
template void show<int>(int, int);
template <>
void show <job>(job a, job b);
具体定义
template <typename T>
void show(T a, T b)
{
cout << a + b << endl;
}
template <>
void show <job>(job a, job b)
{
cout << "显式具体化" << endl;
cout << a.age + b.age << endl;
}
void show(job a, job b)
{
cout << "非模板函数" << endl;
cout << a.age + b.age << endl;
}
开始用了
ios_base::fmtflags initial = cout.setf(ios_base::showpoint);
show(1, 2); //显式实例化
show(1.0, 2.0); //通用模板
job people1, people2;
people1.age = 23;
people2.age = 34;
show(people1, people2); //都匹配时,普通函数优先