ユーザー定義オブジェクト型の配列を扱うクラス プロジェクトがあります。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' への未定義の参照」というエラーをスローします。私は何を間違っていますか?