1 #include 2 using namespace std; 3 // 利用模板函数计算一个表达式 4 template 5 Type Abc(Type a,Type b,Type c) 6 { 7 return a+b+c; 8 } 9 // 利用引用参数指针计算一个表达式10 t...
分类:
编程语言 时间:
2014-12-18 18:36:43
阅读次数:
228
这是本小人书。原名是《using stl》STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其...
分类:
其他好文 时间:
2014-12-15 17:04:32
阅读次数:
200
模板方法模式为我们定义了一个算法的框架,框架之中定义了方法的执行步骤,但是具体每一步的方法要由具体的子类来实现。这样,在不改变整个算法结构的同时,就可以定义某个算法的特定步骤。 模板方法模式的类结构如下: 模板函数:在一个抽象基类中定义了一个模板方法,它规定了整个算法的结构并且定义了...
分类:
其他好文 时间:
2014-12-05 19:14:29
阅读次数:
154
1.模板函数为不同的模板实参定义了一个函数家族。它的表示看起来和普通的函数很相似,唯一的区别是有些函数元素是未确定的:这些参数将在使用的时候被参数化。template inline T const& max(T const& a,T const& b){ return ainline T co...
分类:
其他好文 时间:
2014-12-03 20:59:51
阅读次数:
215
如果我们要设计一个堆栈,不管传入的数据类型,例如整形或字符型,都可以正确的处理,我们要怎么做呢?当然传统的方法我们也可以实现,但是不太好做,比较麻烦。现在我们来介绍一下更通用的一个方法。C++ STL提供了容器(Container),现在我们来看下容器stack怎么实现的。...
分类:
编程语言 时间:
2014-12-03 14:20:49
阅读次数:
250
函数重载在C++中是一个很重要的特性。之所以有了它才有了操作符重载、iostream、函数子、函数适配器、智能指针等非常有用的东西。 平常在实际的应用中多半要么是模板函数与模板函数重载,或者是非模板函数与非模板重载。而让模板函数与非模板函数重载的情况却很少。 前几天在项目中偶然遇到了一个模板...
分类:
编程语言 时间:
2014-12-02 22:08:27
阅读次数:
295
完整的源代码及用法测试代码可以在我的资源中去下载.
C++语法不支持模板函数/模板成员函数作为回调函数,同时把运行期代码向编译期代码转换也只有switch...case或者if..else能够实现。
如果case比较多的时候,代码非常臃肿,而且类似的大片代码中,往往只有一个参数的不同,其它都是相同的。这对于用户来说,都是一个大量的重复性的hard-code性的负担,而且也容易导致出...
分类:
其他好文 时间:
2014-11-30 12:37:05
阅读次数:
283
我把模板的声明写在X.h的文件里,把实现写在X.cpp的文件里然后编译不通过,然人很恼火的是,根本不知道啥原因在某网站上看到了一句 “又是一个模板分离编译的受害者”立马就改正了,于是把两个文件写在了一起没错了然后搜了一下“模板分离”有人说这是个传说有人说这是真的我也不深究这是啥了听人讲这是老版本的编...
分类:
其他好文 时间:
2014-11-25 22:57:54
阅读次数:
190
在《C++ Template》中有一个辨识函数类型的模板技术...
分类:
编程语言 时间:
2014-11-22 14:47:12
阅读次数:
227