返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++11中union的成员举例分析
  • 288
分享到

C++11中union的成员举例分析

2023-06-19 10:06:27 288人浏览 独家记忆
摘要

本篇内容介绍了“c++11中uNIOn的成员举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!类类型的union成员

本篇内容介绍了“c++11中uNIOn的成员举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

类类型的union成员

C++的早期版本不允许union的成员是定义了构造函数或拷贝控制成员的类类型成员,C++11中取消了这个限制。但是也别高兴得太早,因为这类union在发生涉及到类类型成员的值转换时需要根据需求调用相关类成员的构造函数或析构函数。

假设我们有下面的StrValue类。引入这个类的目的是为了在对象操作时可以输出日志信息。

C++11中union的成员举例分析

代码有点长,慢慢看。这个类主要用于存储字符串。它包含3个构造函数,一个析构函数,一个赋值运算符。另外还重载了输出运算符用于输出内部的字符串。C++11以后,允许把这个类作为下面union的成员。

C++11中union的成员举例分析

为union引入类类型成员后,带来了一个麻烦:在切换union有效成员的时候需要恰当的调用类成员的构造函数和析构函数。例如下面的代码:

C++11中union的成员举例分析

最初有效的是ival成员,接下来希望存储字符串时需要使用定位new方式调用构造函数;反之,当我们希望再次使用ival成员的时候,又需要调用sval成员的析构函数。如果不这样做,就无法保证内存管理正常进行。

使用类管理union成员

解决上述问题的方法就是C++最基本的特征:封装。我们可以将union封装到另一个类中。

C++11中union的成员举例分析

我们分类说明SmartUnion类的各个成员。

两个数据成员,一个是用于保存类型信息的ut,通过这个成员,SmartUnion类可以判断当前是哪个成员有效;另一个是包含整数和StrValue成员的匿名union,它是主角。

三个构造函数,一个默认构造函数,另外两个分别接受整数和字符串输入。注意这里的SmartUnion只是示例代码,真正使用的时候可能还要添加不少内容,例如拷贝构造函数。

三个赋值运算符,分别提供从整数,StrValue对象和SmartUnion对象赋值的功能。

经过一番准备之后,用法就简单了:

C++11中union的成员举例分析

“C++11中union的成员举例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: C++11中union的成员举例分析

本文链接: https://lsjlt.com/news/295651.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++11中union的成员举例分析
    本篇内容介绍了“C++11中union的成员举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!类类型的union成员...
    99+
    2023-06-19
  • C++11容器的emplace成员举例分析
    这篇文章主要介绍“C++11容器的emplace成员举例分析”,在日常操作中,相信很多人在C++11容器的emplace成员举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11容器的emplace...
    99+
    2023-06-19
  • C#接口成员举例分析
    本篇内容介绍了“C#接口成员举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#接口编程之接口成员定义说明: ·接口的成员是从基接口继...
    99+
    2023-06-17
  • C++11包扩展举例分析
    这篇文章主要讲解了“C++11包扩展举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11包扩展举例分析”吧!简单扩展假设我们有下面的模板函数。这是一个简单的加法函数,将参数a,b...
    99+
    2023-06-19
  • C++11的捕获列表举例分析
    本篇内容主要讲解“C++11的捕获列表举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11的捕获列表举例分析”吧!值捕获先看如下代码:int factor = 2;auto mult...
    99+
    2023-06-19
  • 微信UnionID作用的示例分析
    这篇文章将为大家详细讲解有关微信UnionID作用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。摘要微信想用UnionID连接一起1、通过这...
    99+
    2024-04-02
  • C++11有作用域的enum举例分析
    本篇内容介绍了“C++11有作用域的enum举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!枚举类型的困惑从C语言过度到C++以后,枚...
    99+
    2023-06-19
  • Web中Union注入攻击原理的示例分析
    小编给大家分享一下Web中Union注入攻击原理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、Union注入攻击Unio ...
    99+
    2023-06-25
  • C++11继承的构造函数举例分析
    本篇内容主要讲解“C++11继承的构造函数举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11继承的构造函数举例分析”吧!假设我们有下面的CRect类:由于今天的内容是讲构造函数的,...
    99+
    2023-06-19
  • C++11内联命名空间举例分析
    本篇内容介绍了“C++11内联命名空间举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!命名空间简介随着软件开发规模的扩大,类名,函数名...
    99+
    2023-06-19
  • C++11泛型算法中的定制操作举例分析
    这篇文章主要介绍“C++11泛型算法中的定制操作举例分析”,在日常操作中,相信很多人在C++11泛型算法中的定制操作举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11泛型算法中的定制操作举例分析...
    99+
    2023-06-19
  • C++11浮点数格式控制举例分析
    这篇文章主要介绍“C++11浮点数格式控制举例分析”,在日常操作中,相信很多人在C++11浮点数格式控制举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11浮点数格式控制举例分析”的疑惑有所帮助!...
    99+
    2023-06-19
  • C语言中枚举与联合体的使用方法(enum union)
    目录enum的定义 enum对比#define宏常量的好处 union的定义 联合体大小的计算 联合体配合算大小端的问题 总结enum的定义 枚举顾名思义就是一一列举,把...
    99+
    2024-04-02
  • 小程序之授权、登录、session_key、unionId的示例分析
    这篇文章主要介绍小程序之授权、登录、session_key、unionId的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信应用的一个很大的优势就在于使用过程中是...
    99+
    2024-04-02
  • C++11模板函数的默认模板参数举例分析
    这篇文章主要介绍“C++11模板函数的默认模板参数举例分析”,在日常操作中,相信很多人在C++11模板函数的默认模板参数举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11模板函数的默认模板参数举...
    99+
    2023-06-19
  • C++11可变参数模板的参数转发举例分析
    本篇内容主要讲解“C++11可变参数模板的参数转发举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11可变参数模板的参数转发举例分析”吧!实例很多软件系统都存在日志(log)功能,通...
    99+
    2023-06-19
  • C++类的静态成员变量实例分析
    本文小编为大家详细介绍“C++类的静态成员变量实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++类的静态成员变量实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、成员变量的回顾通过对象名能够访...
    99+
    2023-06-30
  • C++11模板函数与返回类型后置举例分析
    这篇文章主要介绍“C++11模板函数与返回类型后置举例分析”,在日常操作中,相信很多人在C++11模板函数与返回类型后置举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11模板函数与返回类型后置举...
    99+
    2023-06-19
  • 把Python嵌入C++中类的成员属性的实例分析
    本篇文章给大家分享的是有关把Python嵌入C++中类的成员属性的实例分析 ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在C++中类的相关成员能使用关键字去声明为不一样的属性...
    99+
    2023-06-17
  • C#枚举类型的实例分析
    本篇内容主要讲解“C#枚举类型的实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的实例分析”吧!C#枚举类型实例是你学习C#枚举类型的捷径,那让我们开始吧:public&nbs...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作