随笔 - 87  文章 - 279  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

潜心看书研究!

常用链接

留言簿(19)

随笔分类(81)

文章分类(89)

相册

ACM OJ

My friends

搜索

  •  

积分与排名

  • 积分 - 214752
  • 排名 - 116

最新评论

阅读排行榜

评论排行榜


// 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++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理