他のヘッダーファイルの内容をヘッダーファイルで使うには

[戻る]
define 2012/06/10(日) 11:12:59
初歩的な質問で恐縮です。

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 

という表示が出るので、認識されていない訳ではないようなのですが、
なぜエラーが出るのでしょうか。

お忙しいとは存じますが、よろしくお願いします。

AR 2012/06/10(日) 23:17:38
認識されていると見えるものは入力補助機能であって、コンパイラの文法的に通らない
からです。

仲澤@失業者 2012/06/11(月) 09:42:55
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 ・・・行のある、意図したヘッダーが
 開かれるのを確認する。

等を行ってみるのが、良いと思います。

仲澤@失業者 2012/06/11(月) 10:55:21
× を記述して、エラーの無い事をする。
○ を記述して、エラーの無い事を確認する。
・・・orz.

define 2012/06/18(月) 22:19:46
[[解決]]
ご返答、ありがとうございます。

不要なdefne.hが見つかりましたので、削除したら、正常に動作しました。

ご協力、感謝します。

古いスレッドには追加発言できません。