1

たとえば、 aが の public static メンバーであるとしClassAます。

namespace SPACE{

   char* ClassA::a=NULL;

   ClassA::ClassA()
   {
     ClassA::a="initialized here";
   }
}

2 つの質問:</p>

  1. いつa=NULL呼び出されますか?その前main()か後か?
  2. NULLa は静的メンバーなので、 and で2 回定義できるのはなぜ“initialized here"ですか?</li>
4

2 に答える 2

2

いつa=NULL呼び出されますか?その前main()か後か?

おそらく呼び出されることはありません。これは const で初期化された値であるため、コードを実行せずにシステム上の実行可能ファイルのローダーによって初期化される可能性があります。たとえばa = my_init_func();、の前に完了するコードで初期化されていた場合main()

NULLa は静的メンバーなので、なぜ「ここで初期化」 を使用して 2 回定義できるのでしょうか?</p>

2 つ目は、宣言ではなく代入です。

于 2013-09-19T19:40:40.120 に答える