【发布时间】:2020-01-27 15:56:11
【问题描述】:
我尝试创建一个 Array 模板类,但是当我尝试构建编译器时,无法链接构造函数和方法,我得到:
对 `Array::Array() 的未定义引用
对 `Array::getSize() 的未定义引用
这是头文件:
#pragma once
template<typename type, int length>
struct Array{
public:
Array();
int getSize();
private:
type data[length];
int m_length;
};
Array.cpp 文件:
#include "Array.h"
template<typename t, int l>
Array<t, l>::Array()
{
m_length = l;
}
template<typename type, int length>
Array<type, length>::getSize()
{
return m_length;
}
以及主要功能:
#define LOG(x) cout<<x<<endl
int main()
{
Array<int, 10> array;
LOG(array.getSize());
}
如果有人知道我为什么会得到这个,我将不胜感激。
【问题讨论】:
-
另外,不要忘记
int实现中的int返回类型(尽管真正的问题在 Chris 的链接中)