函数模板和类模板
//带有类模板参数的函数必须是函数模板
#include <iostream>
#include <string>
using namespace std;
//类模板
template < typename U >
class Compare
{
U x;
public:
Compare(U a){ x = a; }
U abs() //成员函数模板
{
if (x < 0) return -x;
else return x;
}
};
template <typename U>
void fun(Compare<U> x) //函数模板
{
cout << x.abs() << endl;
}
int main()
{
Compare<int> s1(-5); //建立一个对象s1
Compare<double> S2(-5.8); //建立一个对象S2
fun(s1);
fun(S2);
system("pause");
return 0;
}
网友评论