如何创建一个包含.h和两个.cpp文件中的类的类模板?

时间:2019-06-18 12:43:02

标签: c++

我的目标是创建一个非常简单的类模板。我可以在一个.cpp文件中完成此操作,但是我坚持要在.h文件中定义相同的类,在.cpp文件中定义其方法,最后在.cpp(主要)中执行它,并且会遇到一些麻烦。

因此,在class.h中,我有以下内容:

#include<iostream>

using namespace std;


template <class T>
class templateClass {
    T x, y;
public:
    templateClass(T, T); // constructor
    T bigger();
};

methods.cpp的手上有

#include<iostream>
#include"class.h"

using namespace std;


template <class T>
templateClass <T> ::templateClass(T a, T b) {
    x = a;
    y = b;
}

template <class T>
T templateClass<T>::bigger() {
    return (x > y ? x : y);
}

最后在main.cpp我有

#include<iostream>
#include"class.h"

using namespace std;



int main() 
{
    templateClass<int> obj(12, 47);

    return 0;
}

最后,我得到一个在函数_main templateClass中引用的未解决的错误外部符号“ public:__thiscall templateClass :: templateClass(int,int)”(?? 0?$ templateClass @ H @@ QAE @ HH @ Z) ...

您能帮我解释一下什么是错误的,如果将所有内容都放在一个.cpp文件中而不分开,为什么同样有效?

0 个答案:

没有答案