外部宣言した定数を添え字とする配列の問題

解決


omiomi  2004-12-15 04:40:49  No: 55685  IP: [192.*.*.*]

A.cppファイル中で
extern const TEISU=10;

B.cppファイル中で
extern const TEISU;

int HAIRETSU[TEISU];

とすると、配列の添え字TEISUが定数とみなされず、エラーとなります。
(TEISUを1や2の整数に変えるとうまくいきます)
また、B.cppファイル中の別の部分ではTEISUは10として使えます。
case TEISU でも同じエラーが起こります。
これはなぜでしょうか?
また対策は何でしょうか?
よろしくおねがいします。

編集    削除
YuO  2004-12-15 07:42:53  No: 55686  IP: [192.*.*.*]

constオブジェクトを定数式として扱えるのは,
そのオブジェクトが定義された翻訳単位のみだからです。

そもそも,TEISUをわざわざexternする必要があるのですか?
どっかのヘッダファイルに,
const int TEISU = 10;
と書いておけばよいだけでは?

編集    削除
omiomi  2004-12-17 03:27:32  No: 55687  IP: [192.*.*.*]

そのやり方でやります。ありがとうございました。

編集    削除