以前没怎么用过模板,今天突然心血来潮想用模板来实现一个算法,搞了半天就不编译不成功。原来模板的实现与分离跟平时用到的不一样。因为在编译程序的时候需要知道参数T的具体类型,所以模板的实现不能与使用模板的程序分开编译,通常是把模板的定义和实现都写在同一个头文件里,现在有一个可替代的办法,就是在头文件的尾部包含实现文件,然后在使用模板的客户程序中包含头文件:

 

test.h

 

 

test.cpp

 

main.cpp

通过g++ main.cpp -o main编译成功。经过试验,这种方法支持类模板和函数模板。

其实在C++标准里有一个export关键字用来实现模板的定义与实现的分享的,但是到目前为止却找不到一款支持这个关键字的编译器,有点搞笑。

posted on 2009-10-26 14:04  伴我闯天涯  阅读(448)  评论(0编辑  收藏  举报