11.C++模板深入解析:理解、使用与高级技巧

一、模板的理解与使用

首先要理解一个基本事实,模板的作用是让我们程序员少写代码,以此来简化开发流程的。

它对于最终编译生成的代码并没有任何影响。

所以即使不用模板,大多数时候我们同样也能够实现相关的功能。

这里以一个简单通用的代码来理解模板:

int add(int a, int b) {
	return a + b;
}
double add(double a, double b) {
	return a + b;
}

比如像上面这两个函数类似的一系列函数,它们函数名字完全相同,代码逻辑也完全相同,唯一不同的是它们所操作的数据类型,一个为int,一个为double,甚至还可以继续添加其它数据类型。

那么使用模板就可以将其简化为一段代码:

template<typename T>
T add(T a, T b) {
	return a + b;
}

此时我们不再使用特定的intdouble之类的类型,而是使用一个类似于变量的T类型。

方法就是在函数前面写上一个模板关键字template,然后在其后的<>中声明模板变量名。

声明模板变量,使用typename或者class均可,只不过由于class一般使用于类,所以模板声明变量的时候大多数时候应该还是使用的typename,便于区分。

如果需要有多个模板变量,直接跟在后面写即可:template<typename T,typename T1>

当然这里的T,你也可以自己随便取其它名字,只不过习惯取T,即Type的首字母。

此时这个函数要操作的类型就是不确定的了,所以我们在使用的时候就需要指定类型:

add<int>(1,3);
add<double>(1.1, 3.4);
add<char>('s','a');
作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux