// mytemplate.h 文件
#ifndef _MYTEMPLATE_H_
#define _MYTEMPLATE_H_
template<typename _T>
class mytemplate{
T val;
public:
void display();
}
#include "mytemplate.cpp"
#endif
// 文件 mytemplate.cpp
#ifdef _MYTEMPLATE_H_
template<typename T>
void mytemplate<T>::display(){
cout<<val<<endl;
}
#endif
这样做的好处是我只需改变一个地方就可以使模板有不同的实现,避免了
把不同的实现放在同一个文件里时难以避免的预编译标记(那些预编译标记
常常很难用,因为记住它们都很麻烦),而且文件短小,阅读维护起来更
方便(一个例子是你需要比较模板的不同实现的综合性能时,把它的几个实现
都写到一个文件里常常会把人搞糊涂).
不管怎样做,程序必须在声明模板实例以前就"看见"了模板的实现部分
posted on 2006-07-09 16:38
豪 阅读(712)
评论(0) 编辑 收藏 引用 所属分类:
Basic C++