对结构方法的未定义引用

Undefined reference to struct method

本文关键字:未定义 引用 方法 结构      更新时间:2023-10-16

我试图创建一个数组模板类,但是当我尝试构建编译器时,编译器无法链接构造函数和方法,我得到:

未定义对 'Array::Array(( 的引用

未定义对 'Array::getSize(( 的引用

这是头文件:

#pragma once
template<typename type, int length>
struct Array{
public:
Array();
int getSize();
private:
type data[length];
int m_length;
};

数组.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());
}

如果有人知道我为什么得到这个,我将不胜感激。

您需要将实现放入头文件中,或者在源文件中定义用法(模板参数的实例化(