C++模板的语法以及原理

C++模板的语法以及原理,第1张

C++模板的语法以及原理 函数模板

函数模板的概念
函数模板代表了一个函数家族,该函数模板与类型无关,根据实参类产生特定的类型版本
函数模板格式

template
Type 函数名(Type x)
{}

用交换函数作为例子:

template
T Swap(T &a,T &b){
	T tmp = a;
	a = b;
	b = tmp;
}

当两个参数为不同类型时该怎么办呢?

template
T Add(T x1,T x2){
	return x1+x2;
}
int main(){
	//第一种方法是直接强制类型转化其中一个参数
	Add((double)10,10.5);
	//第二种是直接将类型定义好
	Add(10,10.5);
}

非模板函数和其同名模板函数可以同时存在吗
答案是可以的,那么当函数调用时,调用哪一个呢?
对于非模板函数和其同名的模板函数,如果条件都相同,则调用非模板函数,如果模板函数可以产生一个更好的匹配函数,则调用模板函数

类模板

其实类模板和函数模板是没有很大差别的

template
class Test
{};

类模板中的函数放在类外进行定义时,需要加模板参数列表

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4949044.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存