我正在尝试编写一个模板类,它可以根据< class>形成类.我通过.问题是我不能在同一个.h文件中声明和定义.在我的项目中,UTF工具只能使用.cpp文件(用于代码覆盖等).我在博客中看到他们说“添加.cpp而不是.h”.这是可取的吗?
Template.h
#ifndef TEMPLATE_H_ #define TEMPLATE_H_ template<class T> class Template { public: T Add(T a,T b); }; #endif /* TEMPLATE_H_ */
Template.cpp
#include "Template.h" template<class T> T Template<T>::Add(T a,T b) { return a+b; }
Main.cpp的
#include "Template.cpp" //Is this a good practise? #include <iostream> int main(int argc,char **argv) { Template<int> obj; std::cout<<obj.Add(3,4)<<std::endl; }
如果这不可行,那么我该如何解决这个问题呢?出口?