我正在鼓垫上学习C ++编程。
我正在使用一个名为DrumSensor的类,我需要在一个数组中创建5次。
我正在使用头文件“ settings.h”来存储将在我的代码中使用的变量。
extern DrumSensor sensor[5];
#include "settings.h"
DrumSensor sensor[5];
我在使用这种全局对象数组方面经历了很多事情,但是我从来没有能够对其进行编译。
我试图找到诸如以下内容的引用:
问题是,无论我如何尝试声明“ DrumSensors”,都会出现以下错误: ...的多重定义...
您可以在此处查看代码: https://github.com/woodencase01/DrumSensor
答案 0 :(得分:4)
显示方式正确。您在标头中声明了它(因此,通过扩展,在包括该标头的任何源文件中)都对其进行了声明,并在源文件中对其进行了一次定义。
您必须不小心链接了settings.cpp
两次,或者不小心在某个地方包含了settings.cpp
,或者您不小心在了某个地方为此数组写了另一个定义。
FWIW,在链接到的GitHub项目中,您没有settings.cpp
,只有settings.h
,其中定义了很多对象(即没有extern
)。因此问题可能仅仅是您正在构建的代码与您一直在谈论的代码不同。