在前几篇文章中,我们学完超重要的类与对象。今天趁热打铁我们来看一看c++中的模板吧,
定义函数模板后只是一个对函数功能框架的描述,当它具体执行时,将根据传递的实际参数决定其功能。
在 C++ 中,模板分为函数模板和类模板两种。
- 函数模板是用于生成函数;
- 例子:class可用typename替代
- #include <iostream>
using namespace std;
template<class T>
void Swap(T & x, T & y)
{
T tmp = x;
x = y;
y = tmp;
}
int main()
{
int n = 1, m = 2;
Swap(n, m);
double f = 1.2, g = 2.3;
Swap(f, g);
return 0;
} - 例子二:#include <iostream>
using namespace std;
template <class T>
T Inc(int n)
{
return 1 + n;
}
int main()
{
cout << Inc<double>(4) / 2;
return 0;
} - 例子三:
类模板则是用于生成类的。
-
类模板用于实现类所需数据的类型参数化
-
类模板在表示如数组、表、图等数据结构显得特别重要,
-
这些数据结构的表示和算法不受所包含的元素类型的影响
-
例子:
相当于向类中传入string和int两个类型
-
<class Nametype,class Agetype=int>,传参数是就不用传入int。这种用法只能在类模板中应用,不能在函数模板中应用
-
类模板中的成员函数刚开始是没有调用的,是要在主函数中明确T的类型才调用的。
-
类模板对象做函数参数
-
类模板与继承:如果父类是类模板,子类需要指定出父类中T的数据类型
-
类模板成员类外实现
-
类模板与友元 -
好啦,关于模板的知识就讲到这啦2,这可能也是博主写c++基础语法系列的最后一篇文章了。
-
本贴为博主亲手整理。如有错误,请评论区指出,一起进步。谢谢大家的浏览.