gpt4 book ai didi

c++ - 如何初始化指向 nullptr 的指针 union ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:25 25 4
gpt4 key购买 nike

假设我有一个这样的 C++ 类:

class Container
{
private:
union {
Foo* foo;
Bar* bar;
} mPtr;
};

这个类将在栈上构造。 IE。它不会被 newed,所以我不能只声明一个归零 operator new

我可以使用构造函数中的初始化程序以某种方式将 mPtr 设置为 nullptr 吗?

Container()
: mPtr(nullptr)
{
}

不编译。甚至不通过添加类型为 nullptr_t 的虚拟 union 成员。

Container()
: mPtr.foo(nullptr)
{
}

也不编译。

最佳答案

使用聚合初始化,例如:

Container() : mPtr { nullptr }
{ }

我通常不喜欢发布链接,但是 here很好地贯穿了这项技术。

关于c++ - 如何初始化指向 nullptr 的指针 union ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22226121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com