- ベストアンサー
EffectiveC++に書いてあったことで...
Effective C++(3版)の『4項 オブジェクトは、使う前に初期化しよう』のところで分かりにくい所がありました。 グローバルでない変数を説明するところで、「グローバルなオブジェクト、名前空間をスコープとするオブジェクト、クラスの中でstatic宣言されたオブジェクト、そしてファイル内でstatic宣言されたオブジェクト」と書いてありましたが、『ファイル内でstatic宣言されたオブジェクト』とはどの時点で宣言されたオブジェクトなのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> グローバルでない変数を説明するところで 「グローバルでない変数」ではなく、「ローカルでない変数」ではないでしょうか? > 『ファイル内でstatic宣言されたオブジェクト』とはどの時点で宣言されたオブジェクトなのでしょうか? 確かに混乱を招く書き方になっていますね。 グローバルなオブジェクト、名前空間をスコープとするオブジェクト、ファイル内でstatic宣言されたオブジェクトの三種類は、どれも名前空間有効範囲で宣言されたオブジェクトのことです。C++では、グローバルというのは、大域的名前空間有効範囲ということになります。staticが付いても、内部結合を表すだけですので、宣言位置は変わりません。
お礼
確かに、修正せずに投稿してしまいました。 気づいた時にはもう遅く修正できませんでした(汗 正しくは「ローカルでない変数」です。ありがとう御座いました。