1.模板
模板是泛型编程的基础。即编写与类型无关的逻辑代码,也是一种复用的方式。
C++中的模板分为:模板函数、模板类
(1)模板函数
函数模板格式:template<class/typename 形参名1,class/typename 形参名2,class/typename 形参名n>
例子:实现一个比较两个数是否相符
template <typename T>
bool IsEqual(const T& left, const T& right)
{
return left==right;
}
明显的,模板实现了代码的复用,那么模板是如何实现不同类型的参数调用时刚还对号入座呢?
原来,编译器调用模板时,编译器会根据传递的参数自动推演出模板形参的类型,并且自动生成
对应的代码。如下图所示:
需要注意的是:
(1)按照以上例子,如果调用IsEqual(1,1.2)时,两个参
模板是泛型编程的基础。即编写与类型无关的逻辑代码,也是一种复用的方式。
C++中的模板分为:模板函数、模板类
(1)模板函数
函数模板格式:template<class/typename 形参名1,class/typename 形参名2,class/typename 形参名n>
例子:实现一个比较两个数是否相符
template <typename T>
bool IsEqual(const T& left, const T& right)
{
return left==right;
}
明显的,模板实现了代码的复用,那么模板是如何实现不同类型的参数调用时刚还对号入座呢?
原来,编译器调用模板时,编译器会根据传递的参数自动推演出模板形参的类型,并且自动生成
对应的代码。如下图所示:
需要注意的是:
(1)按照以上例子,如果调用IsEqual(1,1.2)时,两个参