C++ 外部对象数组
c++ extern object array
我正在尝试创建一个外部对象数组,但我认为我遇到了链接问题。我在class.hpp文件上定义了一个类,在声明.cpp文件中,我包含类标头,然后继续创建该类的数组,然后在第二个头文件上,我将声明为extern的相同数组,此标头将包含在我需要使用它的地方,然后main_header.hpp文件用于初始化extern数组, 因此,它们可以在包含 main_header.hpp 的任何地方使用。
但我得到:
错误:未定义对 main_header.hpp 上的"myArray"的引用
下面的代码是重现该问题的最小代码,在这里我省略了标头保护和不重要的代码。
这是我的设置:
类.hpp
class myClass
{
//Class Declaration
};
/* end of file */
声明.cpp
#include "class.hpp"
myClass myArray[4];
/* end of file */
main_header.hpp
#include "class.hpp"
extern myClass *myArray;
/* end of file */
main_header.cpp
#include "main_header.hpp"
void setup()
{
for(uint8_t i = 0; i < 4; i++)
{
myArray[i] = myClass();
myArray[i].begin();
}
}
/* end of file */
主.cpp
#include "main_header.hpp"
void function()
{
setup();
myArray[0].test();
}
/* end of file */
如何正确声明外部对象数组?
提前感谢!
切切罗莫
编辑: 我正在PSoC Creator上使用g ++进行编译。
编辑2:
如果在我的声明中.cpp我添加
int var = 0;
然后在 main_header.hpp 上添加
extern int var;
然后在主CPP上
int a = var;
它显示 var 没有错误,只有 myArray 错误。
将 main_header.hpp 更改为:
extern myClass myArray[];
相关文章:
- 销毁C++中动态分配的内存(数组对象)
- 数组对象的生存期是否在重用其元素存储时结束?
- 为什么顶点数组对象会导致错误?
- 具有纯虚函数和指针数组对象类型的父类的指针数组
- 这是使用构造函数初始化数组对象的最佳方法吗?
- OpenGL 顶点数组对象与 tinyobjloader
- 将数组/对象/结构列表从C#库中传递给C MFC应用程序
- C++ RapidJson 帮助反序列化数组对象
- ptrdiff_t可以表示指向同一数组对象元素的指针的所有减法吗?
- 检查成员函数是否返回临时对象或数组对象
- 为什么 std::variant 不能容纳数组对象类型,而联合可以?
- 当数组对象以函数参数传递时,为什么复制构造函数会自称
- 如何使用箭头指针打印出一类数组对象,这些对象中有多个分数
- C++17 std::shared_ptr<> 类数组对象的重载运算符 []
- 添加两个具有运算符重载的数组对象,从而导致分段错误
- opengl:两个不同的矢量可以绑定到同一个顶点数组对象吗
- 使用相同的数据填充数组对象或使用指针
- 方法用于最快的分配,并且不需要将动态大小的数组对象作为局部变量
- 如何将2d数组对象传递给c++中的函数
- ReferenceTable溢出(jni-android),数组对象释放