const static objekte und default-ctor



  • hallo,

    eine klasse soll ein konstantes, statisches element bekommen, dass über den standard-konstruktor initialisiert wird. allerdings scheint mein g++ 4.1.2 nicht den standard-ctor zu finden.

    struct Bar {};
    
    struct Foo
    {
    	static const Bar b;
    };
    
    const Bar Foo::b; // "error: uninitialized const 'Foo::b'"
    //const Bar Foo::b(); // geht auch nicht, wird als methode geparst
    
    int main()
    {
    	Bar b = Foo::b;
    }
    

    was mache ich verkehrt? mit einem dummy-ctor und entsprechendem argument geht es (Bar(int) {}), aber das kann doch nicht sein!

    danke im voraus


  • Mod

    Konstante Variablen müssen stets explizit initialisiert werden.

    const Bar Foo::b = Bar();
    

Anmelden zum Antworten