dポイントプレゼントキャンペーン実施中!

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

** test1.cpp
static int a;

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

あと1ファイルから分割ファイルにした場合に気をつけるべき点など詳しい方教えて下さい。

A 回答 (2件)

普通ではstatic変数を別々のファイルからは参照できません。


逆に言うと、単一のファイル(つまりひとかたまりの処理のソース)の中でのみ使われる変数にstatic変数を使うということでもあります。

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

また、どうしても今の変数をstaticで使いたいなら、その変数を操作する関数を追加し、その関数を通して使います。オブジェクト指向で言うクラスとメソッド的な記述になりますね。
    • good
    • 0

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



別のファイル(正確には翻訳単位)から参照できないようにするためにstatic指定子を付けるのです。
強引に参照する方法はありますがお勧めしません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!