模板都是关于泛型编程的.这个概念就像:你定义一个函数体/类,它可以处理任何类型的数据(具有一些属性,比如定义的特定运算符).考虑您正在编写一个函数,它将返回给定参数的总和:
int sum(int a, int b)
{
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
现在您希望该函数也适用于字符串.但你不能做到以下几点:
std::string s1 = "abc", s2 = "def";
std::string s = sum(s1, s2);
Run Code Online (Sandbox Code Playgroud)
对于此sum()调用,您需要定义另一个版本sum().模板将保存您的工作.只需sum()按以下方式编写定义:
template<typename T>
T sum(const T& a, const T& b)
{
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
现在,该函数sum()将适用于operator+已定义的任何数据类型.
编辑
如果你想成为一名C++程序员,首先需要学习STL(标准模板库).