首页 > 其他分享 >结构体Struct、联合体Union与类Class

结构体Struct、联合体Union与类Class

时间:2023-08-18 12:13:14浏览次数:37  
标签:struct Union 成员 继承 Class Struct

结构体Struct、联合体Union与类Class

1. Struct/Class

struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗? 能!!!

1.1 最本质的区别是默认的访问控制;

结构体的继承是public的,class的继承是private的;

两者也可以交叉继承,继承权限由子类决定,如结构体B继承类A,则为public继承,反之为private继承;

1.2 再一个区别就是默认的成员变量访问控制

class是private,struct是public;

列表初始化对于基本的数据结构有用,若结构体或者类中加入了虚函数或构造函数就体现出对象的特性,无法使用列表初始化;

ref:https://cloud.tencent.com/developer/article/1120285

2. struct与Union

与struct相比,最显著的区别就是Union中的成员变量共享一段内存。

另外Union无法被继承,不能拥有静态成员与引用成员

ref:https://blog.csdn.net/K346K346/article/details/47660521

使用场景:1.节省内存空间;2.数据类型转换;3.粗粒度位操作,可以将一个整数拆分成多个位,比如一个Union中两个成员。一个int,一个char[4]数组,则可以通过char数组实现对int的字节粒度上的操作。

Union可以使用新特性:std::variant进一步保证类型安全;详情见

标签:struct,Union,成员,继承,Class,Struct
From: https://www.cnblogs.com/fireinstone/p/17640158.html

相关文章

  • (全英语版)处理恶意软件的随机森林分类器算法(Random Forest Classifier On Malware)
    RandomForestClassifierOnMalware(copyright2020byYISHA,ifyouwanttore-postthis,pleasesendmeanemail:[email protected])(全英语版)处理恶意软件的随机森林分类器算法(RandomForestClassifierOnMalware)Overview随机森林分类器是最近很流行的一种识别恶意......
  • 论文解读(CBL)《CNN-Based Broad Learning for Cross-Domain Emotion Classification》
    Note:[wechat:Y466551|付费咨询,非诚勿扰]论文信息论文标题:CNN-BasedBroadLearningforCross-DomainEmotionClassification论文作者:RongZeng,HongzhanLiu,SanchengPeng,LihongCao,AiminYang,ChengqingZong,GuodongZhou论文来源:2023aRxiv论文地址:download ......
  • 【Idea】新建时没有Java Class选项
    问题:java文件新建没有java文件  解决方法:文件-项目结构-模块-选择项目,将文件标记为相应的源或资源等 应用-确定后,java文件夹右键新建  ......
  • toggleClass详解
    toggleClass()是一个jQuery方法,用于在元素之间切换一个或多个类。该方法的语法如下:$(selector).toggleClass(class1,class2,...)selector:表示要切换类的元素选择器。class1,class2,...:要切换的一个或多个类名。该方法的作用是,在被选元素上添加指定的类,如果元素已经有......
  • class<T extends interface> 或 class<T extends abstract class>
    packagecom.java3y.austin.test;abstractclassA{publicabstractvoidtest();}classBextendsA{B(){System.out.println("B的构造函数");}@Overridepublicvoidtest(){System.out.println("B的test函数"......
  • Golang之数据库转换结构体工具table2struct
    另外一个根据json生成对应结构体在线工具: https://mholt.github.io/json-to-go/ 安装:gogetgithub.com/gohouse/converter或者下载对应平台的二进制文件https://github.com/gohouse/converter/releases 引入该包进行转换的使用方式可以参考github上的使用示例,为......
  • C++ Constructor And Destructor
    ifyouhaveproblemswithconstructorsanddestructors,youcaninsertsuchprintstatementsinconstructorsforyourrealclassestoseethattheyworkasintended.Forlargerprograms,thisexactkindoftracingbecomestedious,butsimilartechniquesa......
  • org.mapstruct系列文章汇总
     Mapstruct使用教程  MapStruct:将多个源字段映射到一个目标字段   JAVA字段相同对象之间转换工具推荐   org.mapstruct.Mapper-JavaBean互相转换使用指南&&【踩坑专栏】mapstruct无法生成实现类   ......
  • jquery操作类和className操作类的区别
      ......
  • 《深入理解Java虚拟机》读书笔记:Class类文件的结构
    Class类文件的结构 Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的的程序存储格式——字节码(ByteCode),从而实现了程序的......