我有一个类项目与用户定义的对象类型的数组有关。我的 ChemicalData.cpp 文件中的所有函数(最终会更多)都需要能够访问这个数组。所以有问题的数组在我的头文件中,使用“extern”语法。
#include <string>
#include "Chemical.h"
const int ARRAY_SIZE = 2000;
extern Chemical chemArray[ARRAY_SIZE];
void start();
void arrayMethod(Chemical[]);
在我的 cpp 文件中,我创建了数组并调用了一个函数。
#include "ChemicalData.h"
#include "Chemical.h"
#include <string>
using namespace std;
void start()
{
Chemical chemArray[ARRAY_SIZE];
arrayMethod(chemArray);
}
void arrayMethod(Chemical[] chemArray)
{
Chemical chem1 = Chemical();
chemArray[i] = chem1;
}
这是我的 Chemical.h:
#include <string>
#if !defined(CHEMICAL_H)
#define CHEMICAL_H
using namespace std;
class Chemical
{
private:
string chem;
public:
Chemical();
};
#endif
和 Chemical.cpp 很好的衡量标准:
#include "Chemical.h"
#include <string>
using namespace std;
string chem;
Chemical::Chemical()
{
chem = "";
}
但是编译器会抛出“未定义对 'chemArray' 的引用”的错误。我究竟做错了什么?