【c++教程】2.8-联合体类型

本文介绍了C++中的联合体类型,包括联合体的特点:成员共享内存、只能有一个成员活跃,以及无名联合体的使用。同时,讨论了联合体在C++中的作用,尽管在实际编程中应用较少,但其主要目的是为了与C语言兼容。
摘要由CSDN通过智能技术生成

联合体

union,联合体类型,有的时候也会被叫做共用体。也是一种特殊的类类型,和结构体很相似。

1,联合体所有的成员都共用同一段内存。联合体中的所有成员,只有一个可以是活跃的,其他的都是不可用的。

2,联合体必须以分号结束。

3,联合体不可以用于继承,没有虚函数。成员默认的访问控制方式为公有。

4,在c++11以前,联合体不可以有含有自定义的构造函数,自定义的析构函数或者重载的复制赋值运算符的成员。在c++11以后,联合体可以有这些成员,但是相关的所有函数全都被丢弃,需要自行提供。

联合体的使用

#include <iostream>
#include <string>

using namespace std;

int main()
{
    union student
    {
        // 在联合体中不能使用string类型(c++98)
        // 在联合体中不能直接使用string类型,如果要使用需要自行提供string的构造函数(c++11)
        // string name;

        const char * name;
        int age;
        double score;
    };
    
    student s;

    s.name = "孙悟空";
    cout << s.name << endl;

    s.age = 888;
    cout << s.age << endl;

    // 不能再输出s.name了
    // 在s.age被设置为活跃以后,s.n
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值