义乌制作网站要多少钱,setnet科技网站建设,厦门工程信息网,长春火车站到龙嘉机场怎么走一、模板类的说明 模板类有一个好处是可以放宽你输入的数据类型。 比如有这样的一个函数#xff1a; int add(int x, int y)
{return xy;
} 这个函数对于int类型的x,y才适合#xff0c;但是如果我们希望计算float类型的呢#xff1f; 这必须重新定义一个函数#xff…一、模板类的说明 模板类有一个好处是可以放宽你输入的数据类型。 比如有这样的一个函数 int add(int x, int y)
{return xy;
} 这个函数对于int类型的x,y才适合但是如果我们希望计算float类型的呢 这必须重新定义一个函数函数重载也可以实现 float add(float x, float y)
{return xy;
} 但是这样显然太麻烦所以模板类可以解决这个问题
二、一个例子 书上的一个例子用作说明 #include iostream
using namespace std;
template typename Type //这一步说明了你要定义一个模板类数据类型名字是Type(比如可能是int, float,等等)
class Calc
{
public:Calc ();Type multiply (Type x, Type y);//类型都是TypeType add (Type x, Type y);//这里是函数的声明
};template typename Type CalcType::Calc ()
{ }template typename Type Type CalcType::multiply (Type x, Type y)
{return x * y;
}template typename Type Type CalcType::add (Type x, Type y)//这里是函数定义
{return xy;
}
int main(void)
{Calcint person;int m3;int n2;int sumperson.add(m,n);coutthe result is sumendl;return 0;
}
三、运行错误 最开始初始化的时候我是这样写的 Calc person; 但是失败了结果如下 后来查了一下发现需要在初始化的时候传入一个数据类型告诉程序你要存储什么数据。 有人给了一个解答 https://stackoverflow.com/questions/33413084/missing-template-arguments-before-l 截图如下 讲的很透彻^-^