質問 |
||
| 質問者: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 |
|
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |