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

这篇具有很好参考价值的文章主要介绍了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;  // 输出全局静态匿名联合的 20

    i = 30;
    std::cout << i << std::endl;    // 输出局部匿名联合的 30

    return 0;
}

 文章来源地址https://www.toymoban.com/news/detail-793768.html

到了这里,关于C++面试经典问题-Union联合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++面试八股文:struct、class和union有哪些区别?

    某日小二参加XXX科技公司的C++工程师开发岗位5面: 面试官:struct和class有什么区别? 小二:在C++中,struct和class的唯一区别是默认的访问控制。struct默认的成员是public的,而class的默认成员是private的。 面试官:struct、class和union有哪些区别? 小二:union和struct、class在内存布

    2024年02月07日
    浏览(44)
  • 联合体union

    结构体中的成员彼此是独立存在的,分布在不同的内存单元中 共用体的成员是“一体的”,使用同一个内存单元 小端:高位地址在高位,低位地址在低位 大端:高位地址在低位,低位地址在高位     

    2024年02月13日
    浏览(28)
  • 十五、联合体(union)

    十五、联合体(union) 1、union语法 ​ 联合体和结构体都是自定义数据类型 ,通过union可以创建一个联合体,union中的成员变量 共享内存 (即内存中有重叠的部分),因此union的数据类型大小由其最大的成员变量决定。 2、union的特点及使用 ①union中任意一个成员变量的变动,

    2024年02月05日
    浏览(37)
  • sql注入中的union联合查询,union select 1,2,3

    (此文章是记录本人对知识理解的随手笔记,内容不肯定百分百正确,如有错误望指出并谅解) union联合查询是为了判断SQL语句中哪个地方可以被代替,代替的地方是可以在网页上显示出来的 { 例:若 select 1,2,3; 中的2这个地方可以被代替,我们就可以通过一些SQL语句或数据库函

    2024年02月08日
    浏览(40)
  • SQL注入之union 联合注入

    目录 一、union查询的特性 1.1、特性-1 1.2、特性-2 1.3、特性-3 二、union联合注入 2.1、让sqlib的Less-1页面显示出来2和3 2.2、MySQL中的一些函数 2.3、MySQL中的函数和union的联合使用方法 2.4、group_concat()函数 2.5、使用union和group_concat函数进行sql注入 2.6、分析注入过程 2.7、使用union获取

    2024年02月08日
    浏览(80)
  • SQL注入学习之union联合查询注入

    Ps:文章若有逻辑不正确的地方望评论指正! Ps:此处描述本文主要内容: 文章首先介绍了SQL注入的基本前提、原理及类型; 其次着重描述了union联合查询注入方式; 最后记录了在sqli-labs靶场的前4关中基于union联合查询注入的基本注入测试思路。 Ps:以下为正文内容,其中案

    2023年04月10日
    浏览(29)
  • 五、多表查询-3.4连接查询-联合查询union

    1、查询薪资低于5000的员工  2、查询年龄大于50岁的员工  3、将薪资低于5000的员工,和 年龄大于50岁的 员工全部查询出来(把上面两部分的结果集直接合并起来)  4、 去重 ,“鹿杖客”既薪资低于5000,年龄也大于50岁,所以有两条数据 union all 改为 union,即可去重    5、

    2024年02月11日
    浏览(40)
  • Hive(24):Select高级查询之Union联合查询

    1 语法规则 UNION用于将来自多个SELECT语句的结果合并为一个结果集。语法如下: 使用DISTINCT与只使用UNION默认值效果一样,都会删除重复行。 使用ALL,不会删除重复行,结果集包括所有SELECT语句的匹配行(包括重复行)。 1.2.0之前的Hive版本仅支持UNION ALL,在这种

    2024年02月13日
    浏览(28)
  • 【基础知识】结构体(struct)和联合体(union)

    目录 1. 结构体(Struct) 1.1 C++ 结构体和 C 语言结构体的区别 1.2 结构体的对齐方式 2. 联合体(Union) 2.1 联合体特性 3. 结构体和联合体的区别         在 C 语言中,结构体是一种自定义的复合数据类型,允许将不同数据类型的变量组合成一个单一的实体。结构体可以包含多个

    2024年02月07日
    浏览(27)
  • 经典C语言面试题

    1.gets()函数 问:请找出下面代码里的问题: 复制 答:上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。 2.strcpy()函数 问:下面是一个简单的密码保护功能,你

    2024年02月09日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包