C++ 对struct方法的未定义引用
我尝试创建一个数组模板类,但当我尝试构建编译器时,未能链接构造函数和方法,我得到: 对`Array::Array()的未定义引用 对`Array::getSize()的未定义引用 以下是头文件:C++ 对struct方法的未定义引用,c++,class,templates,C++,Class,Templates,我尝试创建一个数组模板类,但当我尝试构建编译器时,未能链接构造函数和方法,我得到: 对`Array::Array()的未定义引用 对`Array::getSize()的未定义引用 以下是头文件: #pragma once template<typename type, int length> struct Array{ public: Array(); int getSize(); private: type data[length]; int
#pragma once
template<typename type, int length>
struct Array{
public:
Array();
int getSize();
private:
type data[length];
int m_length;
};
#pragma一次
模板
结构数组{
公众:
数组();
int getSize();
私人:
类型数据[长度];
int m_长度;
};
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;
}
#包括“Array.h”
模板
数组::数组()
{
m_长度=l;
}
模板
数组::getSize()
{
返回m_长度;
}
主要功能是:
#define LOG(x) cout<<x<<endl
int main()
{
Array<int, 10> array;
LOG(array.getSize());
}
#define LOG(x)cout您需要将实现放入头文件,或者在源文件中定义用法(模板参数的实例化)您需要将实现放入头文件,或者定义用法(模板参数的实例化)在源文件中,这是否回答了您的问题?另外,不要忘记getSize()
实现中的int
返回类型(尽管真正的问题在Chris的链接中),这是否回答了您的问题?另外,不要忘记getSize()
实现中的int
返回类型(尽管真正的问题在Chris的链接中)哦,好吧,我已经在头文件中直接实现了这些方法,它工作得很好。非常感谢。哦,好吧,我已经在头文件中直接实现了这些方法,效果很好。非常感谢。