ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:tobasu 分割ファイルでstatic変数はどのようにすれば良いのでしょうか?
困り度:
  • 困っています
1つのファイルでstatic変数を使っている場合は気にしていなかったのですが、分割ファイルにした場合、static変数はどのようにすれば各ファイルで利用できるのでしょうか?
通常のグローバル変数の場合はexternとすれば良かったのですが方法がかわりません。

** test1.cpp
static int a;

** test2.cpp
?????? (二重定義になる)

あと1ファイルから分割ファイルにした場合に気をつけるべき点など詳しい方教えて下さい。
質問投稿日時:08/05/05 10:41
質問番号:3998709
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:tokichim 普通ではstatic変数を別々のファイルからは参照できません。
逆に言うと、単一のファイル(つまりひとかたまりの処理のソース)の中でのみ使われる変数にstatic変数を使うということでもあります。

複数のファイルから使われるのであれば、それはグローバルにすべき変数であるか、または処理のファイルへの分け方が適切でないということです。

また、どうしても今の変数をstaticで使いたいなら、その変数を操作する関数を追加し、その関数を通して使います。オブジェクト指向で言うクラスとメソッド的な記述になりますね。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/05/05 16:08
回答番号:No.2
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答10pt

回答者:jacta > 分割ファイルにした場合、static変数はどのようにすれば各ファイルで利用できるのでしょうか?

別のファイル(正確には翻訳単位)から参照できないようにするためにstatic指定子を付けるのです。
強引に参照する方法はありますがお勧めしません。
種類:回答
どんな人:専門家
自信:参考意見
回答日時:08/05/05 11:11
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示良回答のみ表示