对..的未定义引用..在试图声明数组的嵌套类中
undefined reference to ... in a nested class trying to declare an array?
我正试图在一个名为CLASS_A
的类的构造函数内初始化一个称为ARRAY
的数组,该数组应该可以由嵌套类CLASS_B
访问。我曾想过将数组作为一个模板,但从那时起,语法就变得有点模糊了。
我几乎可以肯定,声明ARRAY静态是解决方案的一部分,并且可能使类型const int
成为类似A
的模板,因此模板看起来像template <class A, const int D>
和声明A ARRAY[SIZE];
。无论如何,我最初在编译下面的代码时遇到了这个错误,然后我做了一些更改,得到了一个不同的错误。
这是的链接器错误
nested_class_incomplete_type.cpp|16|undefined reference to `CLASS_A<3>::ARRAY'|
nested_class_incomplete_type.cpp|28|undefined reference to `CLASS_A<3>::ARRAY'|
编辑重复代码。
您只在CLASS_A
中声明了ARRAY
,您需要定义它:
template <const int D>
int CLASS_A<D>::ARRAY[SIZE] = {};
顺便说一句,你的SIZE字段是多余的,你不需要它,例如:
template <size_t N>
class CLASS_A
{
public:
static int ARRAY[N];
//.....
};
template <size_t N>
int CLASS_A<N>::ARRAY[N] = {};
相关文章:
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 在 glsl opengl 中将嵌套结构数组作为统一传递
- C++:带有 "auto" 的二维数组上的嵌套 For 循环
- 获取嵌套的 JSON 数组和矩阵C++
- 使用嵌套函数数组是个好主意吗?
- 为什么我需要三个嵌套的大括号来调用赋值运算符,将const引用到二维数组
- 具有动态数组分配的OpenMP嵌套循环
- 比较嵌套 for 循环中的两个 wchar 数组?
- 如何从嵌套的 std::initializer_list 初始化 2D C 样式数组?
- 将嵌套的 std::arrays 视为具有链式 .data() 的单个平面数组
- 用于在一维数组上嵌套循环操作的正确 openmp 指令
- 在 Qt 中解析嵌套的 JSON 时出现意外结果(数组不存在)
- 数组嵌套的代理
- C 无法使用嵌套环将数组的元素索引
- 嵌套在功能数组中的循环
- 嵌套调用中的数组运算符 (->) 重载
- C 从嵌套循环中的文件中读取,并将值分配给二维数组
- 如何初始化嵌套结构数组
- 如何使用嵌套的 if 语句检查字符数组
- 通过Boost ASIO TCP发送文件,如何流字符数组到套接字