当前位置: 首页 > news >正文

C++面试经典问题-Union联合

联合(union)是一种节省空间的特殊的类,一个 union 可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值。当某个成员被赋值后其他成员变为未定义状态。联合有如下特点:
  • 默认访问控制符为 public
  • 可以含有构造函数、析构函数
  • 不能含有引用类型的成员
  • 不能继承自其他类,不能作为基类
  • 不能含有虚函数
  • 匿名 union 在定义所在作用域可直接访问 union 成员
  • 匿名 union 不能包含 protected 成员或 private 成员
  • 全局匿名联合必须是静态(static)的
#include<iostream>union UnionTest {UnionTest() : i(10) {};int i;double d;
};static union {int i;double d;
};int main() {UnionTest u;union {int i;double d;};std::cout << u.i << std::endl;  // 输出 UnionTest 联合的 10::i = 20;std::cout << ::i << std::endl;  // 输出全局静态匿名联合的 20i = 30;std::cout << i << std::endl;    // 输出局部匿名联合的 30return 0;
}

 

相关文章:

  • 系分备考计算机网络传输介质、通信方式和交换方式
  • 大功率直流电子负载
  • 宝宝洗衣机买几公斤?婴儿专用洗衣机测评
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux网络编程第二天-tcp编程练习(物联技术666)
  • Linux文件隐藏属性及chattr和lsattr命令
  • 【C语言】操作符
  • CTF CRYPTO 密码学-1
  • Netty-Netty组件了解
  • Apache StringUtils:Java字符串处理工具类
  • openGauss学习笔记-198 openGauss 数据库运维-常见故障定位案例-分析查询效率异常降低的问题
  • 多级缓存架构(二)Caffeine进程缓存
  • javascript的三元运算
  • 【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格
  • openssl3.2 - 官方demo学习 - mac - gmac.c
  • Visual Studio Code 1.67调整文件嵌套、Markdown导航
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【node学习】协程
  • ES10 特性的完整指南
  • ES学习笔记(12)--Symbol
  • HTTP中的ETag在移动客户端的应用
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript学习总结——原型
  • js算法-归并排序(merge_sort)
  • magento 货币换算
  • Mithril.js 入门介绍
  • Node + FFmpeg 实现Canvas动画导出视频
  • sessionStorage和localStorage
  • vue-cli在webpack的配置文件探究
  • 微服务入门【系列视频课程】
  • 再次简单明了总结flex布局,一看就懂...
  • 最简单的无缝轮播
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • #WEB前端(HTML属性)
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (done) 两个矩阵 “相似” 是什么意思?
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .form文件_一篇文章学会文件上传
  • .net 7 上传文件踩坑
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .netcore如何运行环境安装到Linux服务器
  • .NET大文件上传知识整理
  • /etc/fstab和/etc/mtab的区别
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [CF407E]k-d-sequence
  • [docker]docker网络-直接路由模式
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页