在C ++中创建对象的全局数组

时间:2018-11-09 03:19:14

标签: c++ arrays object

我正在鼓垫上学习C ++编程。

我正在使用一个名为DrumSensor的类,我需要在一个数组中创建5次。

我正在使用头文件“ settings.h”来存储将在我的代码中使用的变量。

settings.h

extern DrumSensor sensor[5];

settings.cpp

#include "settings.h"
DrumSensor sensor[5];

我在使用这种全局对象数组方面经历了很多事情,但是我从来没有能够对其进行编译。

我试图找到诸如以下内容的引用:

Creating Array of Objects c++

c++ global object

问题是,无论我如何尝试声明“ DrumSensors”,都会出现以下错误: ...的多重定义...

您可以在此处查看代码: https://github.com/woodencase01/DrumSensor

1 个答案:

答案 0 :(得分:4)

关于您问题中的代码

显示方式正确。您在标头中声明了它(因此,通过扩展,在包括该标头的任何源文件中)都对其进行了声明,并在源文件中对其进行了一次定义。

您必须不小心链接了settings.cpp两次,或者不小心在某个地方包含了settings.cpp,或者您不小心在了某个地方为此数组写了另一个定义。


关于您为我们指出的代码

FWIW,在链接到的GitHub项目中,您没有settings.cpp,只有settings.h,其中定义了很多对象(即没有extern)。因此问题可能仅仅是您正在构建的代码与您一直在谈论的代码不同。