在前几篇文章中,我们学完超重要的类与对象。今天趁热打铁我们来看一看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++基础语法系列的最后一篇文章了。
-
本贴为博主亲手整理。如有错误,请评论区指出,一起进步。谢谢大家的浏览.
本文详细介绍了C++中的模板概念,包括函数模板和类模板。函数模板用于生成不同类型的函数,例如示例中的`Swap`和`Inc`函数。类模板则允许创建类型参数化的类,常用于实现通用数据结构如数组和表。类模板的成员函数需在实例化时指定类型。此外,文章还提及了类模板在继承、成员函数实现、作为函数参数及友元等方面的应用。
1304

被折叠的 条评论
为什么被折叠?



