一、什么是模板方法模式Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。二、模板方法模式的应用场景Template Method模式一般应用在具有以下条件的应用中:- 具有统一...
分类:
其他好文 时间:
2014-07-16 21:39:40
阅读次数:
296
总的结论: 将template function 或者 template class的完整定义直接放在.h文件中,然后加到要使用这些template function的.cpp文件中。1. 现象描述 类似于参考文献[1],当我们以如下方式使用模板函数时,会出现模板函数声明、定义分离带来的链接错误:....
分类:
其他好文 时间:
2014-07-16 20:47:10
阅读次数:
251
大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类假设覆写,在基类指针或者引用来指向子类的时候会实现动态绑定。 但假设指针去调用非虚函数,这个时候会调用C++的静态绑定,去推断当前的指针是什么类型,就去运行哪个类型的函数。 非常有一种比較经典的使用方法,就是Template Method...
分类:
编程语言 时间:
2014-07-14 08:53:47
阅读次数:
246
类模板:template struct pair参数:T1是第一个值的数据类型,T2是第二个值的数据类型。功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。具体用法:1.定义(构造):pair p1....
分类:
编程语言 时间:
2014-07-14 00:41:51
阅读次数:
189
STL源码之vector1. SGI的vectorSGI stl vector继承子一个基类:template > class vector : protected _Vector_base在基类中定义了基本的一些操作,并且封装了了vector所需要的基本的三个指针:struct _Vector_....
分类:
其他好文 时间:
2014-07-13 23:19:35
阅读次数:
188
写c++程序时我们经常会把函数的定义写在xxx.h中,把函数的实现写在xxx.cpp, 但是当我们写带模版的函数和类时,这样写
就会出现问题,如下:
stack.h
//stack.h
#ifndef STACK_HPP
#define STACK_HPP
#include
#include
template>
class CStack
{
public:
void push(co...
分类:
其他好文 时间:
2014-07-13 18:30:56
阅读次数:
214
有时,当把c风格的不同字符串去实例化函数模版的同一个模版参数时,在实参演绎的过程中经常会发生
意想不到的事情,那就是编译失败,并报错类型不匹配。
正如下面的例子一样:
#include
using namespace std;
/*
*匹配测试
*/
template
int ref_fun(T & t1,T & t2)
{
return strlen(t1) - strlen(t2);...
分类:
其他好文 时间:
2014-07-13 17:04:42
阅读次数:
208
每个人应该知道的NVelocity用法NVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。从而使得界面设计人员与.NET程序开发人员基本分离。一、nVelocity的...
分类:
其他好文 时间:
2014-07-13 08:23:28
阅读次数:
238
c++ 联邦语言:
typedef {
unit C;
unit Object-Oriented C++;
unit Template C++;
unit STL;
};
notice: C++高效编程取决于你使用C++的哪一个部分。
eg:pass-by-reference and pass-by-value.
c:内置类型value kill reference...
分类:
编程语言 时间:
2014-07-13 00:14:37
阅读次数:
282
经验:在应用域,复合意味着 has-a。 在实现域,复合意味着 is-implemented-in-terms-of
示例:
template //将list应用于 Set。错误做法
class Set: public std::list {...};
解析:
public 继承表示 is-a,即如果D是一种B,对B为真的每一件事,对D也应该为真。但list可以包含相同的元素,而Set不可以
纠正:
template
class Set{
publi...
分类:
编程语言 时间:
2014-07-12 23:02:43
阅读次数:
369