假設我有一個C++類這樣的:如何初始化指向nullptr的指針聯合?
class Container
{
private:
union {
Foo* foo;
Bar* bar;
} mPtr;
};
這個類將在堆棧上構成。即它不會被new
編輯,所以我不能只聲明一個歸零operator new
。
我可以使用構造函數中的初始值設定器來設置mPtr
到nullptr
莫名其妙嗎?
Container()
: mPtr(nullptr)
{
}
不能編譯。甚至沒有添加nullptr_t
類型的虛擬union
成員。
Container()
: mPtr.foo(nullptr)
{
}
也不編譯。
嘗試':mPtr(NULL)',您還可以定義聯合的構造函數。爲此,它必須通過AFAIK命名 – Paranaix