模板和重载类似,比重载更省事通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。一个简单的函数模板template void swap(T& a, T& b){。。。}当调用模板时,T被int或double等代替一个简单的类模板t...
分类:
编程语言 时间:
2015-02-26 16:30:22
阅读次数:
164
函数就像工具,工具有好多种,我们就以螺丝刀为例来感受一下它和函数重载和模板的一些相似关系。
螺丝刀的种类有很多,常见的是一字型和梅花型, 每种类型从小到大又有好多个号。 我们根据螺丝样式和大小
选择使用那种类型的和选择多大号的螺丝刀。 螺丝刀就干了一件事,拧螺丝,也就是说各种螺丝刀他们的功能是相
同的,只是类型不同而已。
一、函数重载
在C++...
分类:
编程语言 时间:
2015-02-23 15:34:11
阅读次数:
197
C++拾遗--函数模板
前言
泛型的核心思想是数据与算法分离。函数模板是泛型编程的基础。
函数模板
函数模板以 template 开头,arg_list是泛型参数的列表。
1.模板的泛型参数个数确定
实例一
下面是一个加法函数模板,在实例化时,我们传入普通的数据类型。...
分类:
编程语言 时间:
2015-02-17 11:43:18
阅读次数:
224
在设计五中,我们把事件系统EventSystem实现一下。这个EventSystem类主要实现的是事件的注册,触发,以及分发Event消息的作用。提供接口对外使用的。在这里面为了功能扩展方便用了好多模板函数,方便大家调用。分发消息的时候,我们采用的是队列的方式,就是先进先出原则。首先..
分类:
其他好文 时间:
2015-02-11 12:51:55
阅读次数:
815
模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。1.函数模板例:templateT max(T a, T b){ return (a>b)?a:b; }使用:int main(int...
分类:
编程语言 时间:
2015-02-02 19:30:26
阅读次数:
162
os.path.abspath(path) #返回绝对路径os.path.basename(path) #返回文件名os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。os.path.dirname(path) #返回文件路径os.pat...
分类:
编程语言 时间:
2015-01-28 15:55:48
阅读次数:
161
最近在查资料,发现了一些blog上写"类模板、模板类、函数模板、模板函数的区别"之类的文章。一看之下,闭起眼睛想想,自己写了这么久C++,知道模板,知道函数,也知道类。如果单独问我,类模板或者模板类,我都认为是采用了模板的类。但不知道这"类模板、模板类、函数模板、模板函数"是什么东西。 仔细看...
分类:
其他好文 时间:
2015-01-03 22:17:40
阅读次数:
124
1、在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?
答:class用于定义类,在模板引入c++后,最初定义模板的方法为:template,这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为...
分类:
编程语言 时间:
2014-12-30 15:20:27
阅读次数:
223
STL源码剖析--侯捷总结 尽管现在的很多语言支持参数类型的判别,但是c/c++并不支持这一特性。 但是我们可以通过一些技巧使得c++具有自动判别参数类型的特性。模板 我们都知道在模板类和模板函数中我们不用具体指定参数的型别,编译器会自动的判别参数的类型。 所以我们想可不可以把编译器运行...
分类:
编程语言 时间:
2014-12-27 17:31:17
阅读次数:
249
下面使用模板递归函数计算一个数组中前n个元素之和: 1 // 使用模板函数递归计算前n个元素之和 2 3 #include 4 using namespace std; 5 template 6 Type Rsum(Type a[],int n) 7 { 8 if(n<=0) 9 ...
分类:
编程语言 时间:
2014-12-18 22:05:25
阅读次数:
226