2
I類具有被在聯合使用,因此不能有(非平凡)構造一個類。我需要創建一個類的const實例,可以這樣做嗎?初始化常量C++而不構造
即:
static Foo configureDefaultFoo()
{
Foo f; // not const
f.setI(42); // call non-const member functions
return f;
}
const Foo defaultFoo = configureDefaultFoo();
注意的是,雖然這會導致一個對象,它是const
,它是動態的:
class Foo {
// no constructors...
private:
int i;
};
union {
Foo foo;
Bar bar;
} FooBar;
const Foo defaultFoo = ???
既然可以具有非平凡構造對象的實例的C++ 11標準。見例如[這個'union'參考資料](http://en.cppreference.com/w/cpp/language/union)。 –
不幸的是,我使用的是C++,它不支持在構造函數工會的舊版本。 – blackghost
會員必須是私人的嗎? – NathanOliver