c++ 结构体赋值_C++日志(十)结构体和联合体

dbf63c592294854c66c532fea1937b2d.png

1、结构体

结构体在C语言中的使用频率非常高,C++出于历史原因兼容了结构体。但是,按照资料中所说C++的结构体同样支持多态、拥有多种控制权限、可以继承等,即结构体与类的唯一不同在于没有指明访问权限时,结构体默认为public,而类默认为private()。结构体的关键字为struct,定义如下:

struct 

初始化赋值采用大括号,值对应结构体中成员的定义顺序,结构体成员的访问采用“点”,如下:

Time 

按照网上的资料,一般结构体是不会定义成员函数的,通常用于数据记录的。

2、联合体

联合体采用union关键字进行定义,可以有自己的数据成员和函数成员,并可以拥有构造函数和析构函数,但是联合体不支持继承和多态。下面是联合体定义的语法:

union 

结构体的各个成员的内存空间是独立的,但是联合体的全部数据成员共享同一组内存单元,比如含有两个int成员的联合体Data定义如下:

union 

由于成员共享同一个内存单元,所以联合体中的多个成员只有一个是有用的:

Data 

此时,对x赋值导致x和y都是666,对y赋值导致x和y都是3,即内存共享。此外需要注意,联合体的对象成员不能有自定义的构造和析构函数以及重载的赋值运算符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值