ブックマーク / ja.wikibooks.org (1)

  • More C++ Idioms/初回使用時生成(Construct On First Use) - Wikibooks

    自明でない(non-trivial)コンストラクタを持つ静的オブジェクトは使用前に初期化されねばならない。十分な注意を払わないと、初期化されていない非ローカル静的オブジェクトをアクセスしてしまう場合がある。 struct Bar { Bar () { cout << "Bar::Bar()\n"; } void f () { cout << "Bar::f()\n"; } }; struct Foo { Foo () { bar_.f (); } static Bar bar_; }; Foo f; Bar Foo::bar_; int main () {}

    cppquiz
    cppquiz 2009/03/19
    グローバル変数の未初期化使用を防ぐために。static 変数の参照を返す関数を使う。
  • 1