类模板
函数木板比较简单,就是把函数涉及到的类型都暂时写成一个T,然后调用的时候,给出具体的参数类型,这时候就会实例化出一个新的函数,类模板意思差不多,就是把类里面涉及到的类型暂时写成一个T,然后就可以实例化的时候传递一个类型,不过类模板,要显示的传递类型
实现一个加法
#include <iostream>
using namespace std;
class MathUtil{
public:
int add(int a, int b){
return a + b;
}
float add(float a, float b){
return a + b;
}
};
int main (int argc, const char * argv[])
{
MathUtil mu;
int x = 1, y = 2;
cout<<"x +y = "<<mu.add(x, y)<<endl;
float m = 1.0f, n = 2.0f;
cout<<"m + n = "<<mu.add(m, n)<<endl;
return 0;
}
这个是没有模板的实现,现在看下类模板实现
#include <iostream>
using namespace std;
template <typename T>
class MathUtil{
public:
T add(T a, T b){
return a + b;
}
};
int main (int argc, const char * argv[])
{
MathUtil<int> mu;
int x = 1, y = 2;
cout<<"x +y = "<<mu.add(x, y)<<endl;
MathUtil<float> mu2;
float m = 1.1f, n = 2.0f;
cout<<"m + n = "<<mu2.add(m, n)<<endl;
return 0;
}
使用的时候,传一个类型就行了