• ベストアンサー

EffectiveC++に書いてあったことで...

Effective C++(3版)の『4項 オブジェクトは、使う前に初期化しよう』のところで分かりにくい所がありました。 グローバルでない変数を説明するところで、「グローバルなオブジェクト、名前空間をスコープとするオブジェクト、クラスの中でstatic宣言されたオブジェクト、そしてファイル内でstatic宣言されたオブジェクト」と書いてありましたが、『ファイル内でstatic宣言されたオブジェクト』とはどの時点で宣言されたオブジェクトなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

> グローバルでない変数を説明するところで 「グローバルでない変数」ではなく、「ローカルでない変数」ではないでしょうか? > 『ファイル内でstatic宣言されたオブジェクト』とはどの時点で宣言されたオブジェクトなのでしょうか? 確かに混乱を招く書き方になっていますね。 グローバルなオブジェクト、名前空間をスコープとするオブジェクト、ファイル内でstatic宣言されたオブジェクトの三種類は、どれも名前空間有効範囲で宣言されたオブジェクトのことです。C++では、グローバルというのは、大域的名前空間有効範囲ということになります。staticが付いても、内部結合を表すだけですので、宣言位置は変わりません。

sirn
質問者

お礼

確かに、修正せずに投稿してしまいました。 気づいた時にはもう遅く修正できませんでした(汗 正しくは「ローカルでない変数」です。ありがとう御座いました。

関連するQ&A