对于函数模板与类模板,模板参数并不局限于类型,普通值也可以作为模板参数。在基于类型参数的模板中,你定义了一些具体的细节来加以确定代码,直到代码被调用时这些细节才被真正的确定。但是在这里,我们面对的是这些细节是值,而不是类型,当要使用基于值的模板时,必须显式地指定这些值,才能够对模板进行实例化。本文地...
分类:
编程语言 时间:
2014-07-22 22:59:15
阅读次数:
357
模板与泛型编程--实例化引言: 模板是一个蓝图,它本身不是类或函数。编译器使用模板产生指定的类或函数的特定版本。产生模板的特定类型实例的过程称为实例化。 模板在使用时将进行实例化,类模板在引用实际模板类型时实例化,函数模板在调用它或用它对函数指针进行初始化或赋值时实例化。1、类的实例化 当编写Queueqi时,编译器自动创建名为Queue的类。实际上,编译器通过重新编写Queue模板,用类型in...
分类:
编程语言 时间:
2014-05-22 10:11:06
阅读次数:
367
模板与泛型编程--类模板成员引言: 这一节我们介绍怎样实现前面提到的Queue模板类。 标准库将queue实现为其他容器之上的适配器。为了强调在使用低级数据结构中设计的编程要点,我们将Queue实现为链表。实际上,在我们的实现中使用标准库可能是个更好的决定!!-_-。1、Queue的实现策略 如图所示,我们实现两个类: 1)QueueItem类表示Queue的链表中的节点,该类有两个数据成员ite...
分类:
编程语言 时间:
2014-05-20 13:47:39
阅读次数:
430
模板与泛型编程--模板定义引言: 所谓泛型程序就是以独立于任何特定类型的方式编写代码。使用泛型程序时,我们需要提供具体程序实例所操作的类型或值。 模板是泛型编程的基础。使用模板时可以无须了解模板的定义。 泛型编程与面向对象编程一样,都依赖于某种形式的多态性。面向对象编程中的多态性在运行时应用于存在继承关系的类。我们能够编写使用这些类的代码,忽略基类与派生类之间类型上的差异。只要使用基类的引用或指针...
分类:
编程语言 时间:
2014-05-18 07:23:00
阅读次数:
344
顺序表的C++语言描述基本运算的算法——置空表、求表的长度、取结点、定位运算、插入运算、删除运算、建立顺序表、输出顺序表#include using
namespace std;#define OK 1#define ERROR 0template class Linklist{public: .....
分类:
编程语言 时间:
2014-05-18 01:12:51
阅读次数:
404
Java允许我们从多种管道为一个class生成对应的Class
object。图2是一份整理。Class object 诞生管道示例:1)运用getClass()注:每个class 都有此函数String str =
"abc";Class c1 = str.getClass();2)运用Class...
分类:
其他好文 时间:
2014-05-13 20:45:38
阅读次数:
284
模板方法模式定义:
定义一个算法的骨架,而将步骤延迟到子类中。这种模式可以使得在不改变算法骨架(模板)的情况下修改每个步骤的具体实现
从功能上来看,这个模式跟生成器模式有些相像,只不过生成器模式定义了创建对象的过程,而模板方法模式定义了算法过程
.接口和抽象类
(1)接口是特殊的抽象类,接口中所有方法必须是抽象的,不能有具体实现;而抽象类中可以有实现的方法
(2)抽象类不一定包含抽象方法,有抽象方法的类一定是抽象类
(3)需要约束子类行为时用接口,既要约束子类行为,又要为其提供公共功能时用抽象类
模板方法模...
分类:
其他好文 时间:
2014-05-09 15:21:55
阅读次数:
324
看大话设计模式中大牛对小菜的精辟点评,也写了一个计算器程序,并跟着点评一路改良,还是不过瘾,应用了类模板和异常捕捉机制重写了程序。 本文不能算干货,恰当的比方是饭前甜点,吃一口有点味、有点意思,总归太小不管饱。 #include #include #include #include #includ....
分类:
编程语言 时间:
2014-05-08 14:39:50
阅读次数:
382
在
怎样用boost::serialization去序列化派生模板类这篇文章中,介绍了序列化派生类模板类,
在写测试用例时一直出现编译错误,调了很久也没跳出来,今天偶然试了一下...居然调了出来。
先看看变异错误的代码(。。。看不出有错,可是编译就有错)。
基类代码:
class base_class
{
public:
base_cla...
分类:
其他好文 时间:
2014-05-07 03:54:45
阅读次数:
543
在C++中,编译器在看到模板的定义的时候,并不立即产生代码,只有在看到用到模板时,比如调用了模板函数 或者 定义了类模板的
对象的时候,编译器才产生特定类型的代码。
一般而言,在调用函数的时候,只需要知道函数的声明即可;
在定义类的对象时,只需要知道类的定义,不需要成员函数的定义。
但是,这对于模板编译是不奏效的,模板要进行实例化,则必须能够访问定义模板的源代码,当调用函数...
分类:
编程语言 时间:
2014-05-03 23:54:04
阅读次数:
576