C++中,怎么将函数模板的声明和定义分开写?

C++中,能不能将函数模板的声明和定义分开写,比如将声明写在.h文件中,定义写在.cpp文件中。
如果能,具体应该怎样写,格式又是什么样的?
如果不能,为什么?
能把不能的原因说得再详细点吗?

不行。

目前c++还不支持模板定义与实现分开的写法,不过,这个功能已经在0x标准里出现了。
函数模板要被实例化后才能成为真正的函数,在使用函数模板的源文件中包含函数模板的头文件,如果该头文件中只有声明,没有定义,那编译器无法实例化该模板,最终导致链接错误。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-25
据我所知,目前c++还不支持模板定义与实现分开的写法,不过,这个功能已经在0x标准里出现了。希望新的标准尽快推出。本回答被网友采纳
第2个回答  2010-12-25
现在主流的编译器还都没有实现将模板的定义和实现分开。
第3个回答  推荐于2016-07-03
在vc++6下面试了一下,不行:
函数模板要被实例化后才能成为真正的函数,你在使用函数模板的源文件中包含函数模板的头文件,如果该头文件中只有声明,没有定义,那编译器无法实例化该模板,最终导致链接错误。本回答被提问者采纳
相似回答