c – 模板类实现中单独的.h和.cpp文件

c – 模板类实现中单独的.h和.cpp文件,第1张

概述我正在尝试编写一个模板类,它可以根据< class>形成类.我通过.问题是我不能在同一个.h文件中声明和定义.在我的项目中,UTF工具只能使用.cpp文件(用于代码覆盖等).我在博客中看到他们说“添加.cpp而不是.h”.这是可取的吗? Template.h #ifndef TEMPLATE_H_#define TEMPLATE_H_template<class T>class Templ 我正在尝试编写一个模板类,它可以根据< 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;}

如果这不可行,那么我该如何解决这个问题呢?出口?

解决方法 编译器需要访问方法的实现才能实例化模板类,因此最常见的做法是在头文件中包含模板的定义,以声明该模板或在头文件中定义它们.

见Why can templates only be implemented in the header file?

总结

以上是内存溢出为你收集整理的c – 模板类实现中单独的.h和.cpp文件全部内容,希望文章能够帮你解决c – 模板类实现中单独的.h和.cpp文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1241898.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存