初歩的な質問で恐縮です。
VisualStudio2010を使用している者です。
define.hの中で
const int xnum_max=4;
と置き、別のヘッダーファイルで
#include define.h
class CAuto
{
public:
CAuto(void);
~CAuto(void);
int xnum,ynum,znum;
int block_num[xnum_max];
}
と書いてコンパイルすると、
error C2065:'xnum_max:定義されていない識別子です。
というエラーが出ます。
int block_num[xnum_max];
のxnum_maxにマウスをかざすと、
const int xnum_max=4
という表示が出るので、認識されていない訳ではないようなのですが、
なぜエラーが出るのでしょうか。
お忙しいとは存じますが、よろしくお願いします。
認識されていると見えるものは入力補助機能であって、コンパイラの文法的に通らない
からです。
classの閉じカッコ '}' の後ろにセミコロン';'がない以外は
文法的な間違いはありません。
このような場合は、
1.define.hが、いくつかあり、当該の定義がされていないものを
#includeしてしまっている。
が考えられます。従って
2.class CAuto{}の直前に
const int xnum_max=4;
を記述して、エラーの無い事をする。
3.できれば、不要なdefine.hを削除する。
4.又は、プロジェクトのプロパティで、「追加のインクルードパス」
が意図したものとなっているか確認する。
5.#include define.hの上にカーソルを置き、右クリックの
コンテキストメニューから「ドキュメントdefine.hを開く」
を行い、const int ・・・行のある、意図したヘッダーが
開かれるのを確認する。
等を行ってみるのが、良いと思います。
× を記述して、エラーの無い事をする。
○ を記述して、エラーの無い事を確認する。
・・・orz.
ご返答、ありがとうございます。
不要なdefne.hが見つかりましたので、削除したら、正常に動作しました。
ご協力、感謝します。