ページ 11

配列のincludeについて

Posted: 2012年7月17日(火) 02:38
by とっしー
初めまして。
初歩的なことですが質問させていただきます。

あるゲームプログラムでmainループのあるcppファイル、
主人公の動きを処理するcppファイル、
敵の動きを処理するcppファイル・・・などがあります。

それらすべてのcppファイルである配列 a[n][m] を参照にしたいのですが、
ヘッダーファイルにこの配列を定義してそれぞれのcppファイルでincludeすると
「配列 a[n][m] は何回も定義されています」
的なエラーが出てしまい実行することができません。

この場合どのようにすればいいのでしょうか?
お手数お掛けしますがご回答よろしくお願いしますm(__)m

Re: 配列のincludeについて

Posted: 2012年7月17日(火) 06:17
by beatle
基本的なやり方は、ヘッダーファイルに「配列aはどこかで定義されていますよ」というお知らせを書き、どれか一つのcppファイルに配列aの実際の定義を書きます。

何らかの変数が「どこかで定義されている」というのを表すには「extern」というキーワードを使って、ヘッダファイルに以下のように書きます。

コード:

extern T hoge;
今回の場合は配列aをextern宣言したいのですから

コード:

extern T a[n][m];
と書いておきましょう。Tには要素の型を、n, mには要素数をそれぞれ書き込んでください。

そして、どれか1つのcppファイルに定義を書きます。

コード:

T a[n][m];

Re: 配列のincludeについて

Posted: 2012年7月17日(火) 11:46
by とっしー
beatleさん

ありがとうございました!解決しました!
また機会がありましたらよろしくお願いしますm(__)m

Re: 配列のincludeについて

Posted: 2012年7月17日(火) 11:47
by とっしー
失礼しました、解決を付け忘れていました