如何在c++中动态创建union实例?
我需要有多个联合实例作为类变量,那么如何在堆中创建联合实例?谢谢
I need to have several instances of a union as class variables, so how can I create a union instance in the heap? thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
与创建任何其他对象相同:
您的联合现在位于堆上。请注意,联合是其最大数据成员的大小。
The same as creating any other object:
Your union is now on the heap. Note that a union is the size of it's largest data member.
我的 C++ 有点生疏,但是:
My C++ is a bit rusty, but:
与结构相同:) 您可以使用
malloc()
并以 C 方式执行,或使用new
以 C++ 方式执行。秘密在于结构、联合和类是相关的;结构只是一个没有方法的类(通常)。如果您关心的话,以下评论中有更多说明。Same as a struct :) You can use
malloc()
and do it the C way, ornew
for the C++ way. The secret is that structs, unions and classes are related; a struct is just a class (usually) without methods. There's more clarification in the following comments, should you care.使用
new
运算符。Use the
new
operator.我不确定你想把这个问题带到哪里。联合是一种用户定义的数据或类类型,在任何给定时间,仅包含其成员列表中的一个对象。因此,从这里开始,如果您有一个像这样定义的联合:
那么您可以使用 DataType 作为类型来定义类中的成员,或者作为类型来定义堆栈上的变量,就像常规类型一样您定义的、结构或类。
I'm not sure where you want to head with this. A union is a user-defined data or class type that, at any given time, contains only one object from its list of members. So starting from this, if you have a union defined like this:
You can then use
DataType
as a type to define members in a class or as a type to define variables on the stack, just like regular types, struct or classes you define.使用
new
运算符:Use the
new
operator: