这两天刚接触C++,遇到一点关于函数模板的问题,发个博客记录一下。
在T max(T& a, T& b)不将引用作为函数参数的话就会报错,即T max(T a, T b)就会报错。而且函数模板声明的时候不需要加上分号。本人就因为看了谭浩强的《C++面向对象程序设计》一书被坑了很久,故发条博客希望其他朋友们遇到同样的问题能够快点解决。
另外,写模板要把声明和实现全部在同一个文件中实现(可以都放在".h"文件中),否则就会报错
#include <iostream>
using namespace std;
template<typename T>
T max(T& a, T& b)
{
if(a<b)
a = b;
return a;
}
int main()
{
int a = 545;
int b =43;
int c = max(a,b);
cout << b << " " << c << endl;
float aa = 1.2;
float bb = 0.8;
float cc = max(aa,bb);
cout << bb << " " << cc << endl;
return 0;
}