C++ 学习记录4 -- 模板chongzai
2017-04-08 11:09
267 查看
在C++中,数据的类型也可以通过参数来传递,在函数定义时可以不指明具体的数据类型,当发生函数调用时,编译器可以根据传入的实参自动推断数据类型。这就是类型的参数化。
值(Value)和类型(Type)是数据的两个主要特征,它们在C++中都可以被参数化。
所谓函数模板,实际上是建立一个通用函数,它所用到的数据的类型(包括返回值类型、形参类型、局部变量类型)可以不具体指定,而是用一个虚拟的类型来代替(实际上是用一个标识符来占位),等发生函数调用时再根据传入的实参来逆推出真正的类型。这个通用函数就称为函数模板(Function
Template)。
template<typenameT>voidSwap(T*a,T*b){
T temp
= *a;
*a
= *b;
*b
= temp;
}
C++
除了支持函数模板,还支持类模板(Class
Template)。函数模板中定义的类型参数可以用在函数声明和函数定义中,类模板中定义的类型参数可以用在类声明和类实现中。类模板的目的同样是将数据的类型参数化。
const
返回值类型 & operator[ ] (参数) const; 重载[]
值(Value)和类型(Type)是数据的两个主要特征,它们在C++中都可以被参数化。
所谓函数模板,实际上是建立一个通用函数,它所用到的数据的类型(包括返回值类型、形参类型、局部变量类型)可以不具体指定,而是用一个虚拟的类型来代替(实际上是用一个标识符来占位),等发生函数调用时再根据传入的实参来逆推出真正的类型。这个通用函数就称为函数模板(Function
Template)。
template<typenameT>voidSwap(T*a,T*b){
T temp
= *a;
*a
= *b;
*b
= temp;
}
typename关键字也可以使用
class关键字替代,它们没有任何区别。
C++
除了支持函数模板,还支持类模板(Class
Template)。函数模板中定义的类型参数可以用在函数声明和函数定义中,类模板中定义的类型参数可以用在类声明和类实现中。类模板的目的同样是将数据的类型参数化。
const
返回值类型 & operator[ ] (参数) const; 重载[]
相关文章推荐
- 记录一个新人的C++之路,以供后来的新人学习
- Effective C++学习记录之Things To Remember
- C#一小时学习记录 有c++基础才行 threadpool 和IIS崩
- C++学习大纲和记录
- C++学习大纲和记录 分类: VC++ 2012-10-13 08:02 135人阅读 评论(0) 收藏
- 记录我在C++学习中的点点滴滴!
- C++ 学习拾遗 —— 点滴记录C++学习过程中遇到的问题以及整理
- C++学习、成长记录(2011-2012第一学期第18周)
- C++学习、成长记录(2011-2012第一学期第17周)
- C++ 学习记录,小技巧
- 记录自己学习C++的点滴,(高手请指点) 偶能承受打击
- 20101231学习记录C++ STL
- 20101230学习记录C++ STL
- C++学习、成长记录(2011-2012第一学期第18周)
- C++ 对象模型学习记录(3)--- 第1章 关于对象(未完)
- 关于c++的学习情况,不再更新了,因为找到了更好的笔记记录工具
- 20101229学习记录C++ STL
- C++ 对象模型学习记录(1)--- 第2章 构造函数语义学
- C++零碎学习记录
- c++学习步骤(记录)