随笔 - 87  文章 - 279  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

潜心看书研究!

常用链接

留言簿(19)

随笔分类(81)

文章分类(89)

相册

ACM OJ

My friends

搜索

  •  

积分与排名

  • 积分 - 211901
  • 排名 - 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 阅读(695) 评论(0)  编辑 收藏 引用 所属分类: Basic C++

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