C++类中嵌套enum(枚举)、union(联合)、struct(结构体)类型

2023-11-02

1、枚举

#include <iostream>

using namespace std;

class test
{
public:
	enum type{
	    One=2,Two, Three
        };

	test():t(One) {}
	type getT() {return t;}

private:
	type t;
};

int main()
{
	test s;
	cout << sizeof(test)<<endl; //4
	cout<<s.getT()<<endl; //2
	cout << test::Three<<endl; //4
	return 0;
}

此时类的大小是一个int型变量的大小。取得的枚举是一个整形。可以通过类域访问到枚举值。

为什么通过 类::enum值可以访问枚举值?
因为该枚举是一个常量,在编译的时候已经被放入了常量区。调用的时候因此不需要该枚举的变量也可以调用。

注意:枚举类型不具备名字空间的作用。在一个作用域中在,如果两个枚举类型的值相同,则会编译出错。

      struct CEType
               {
                   enum EType1 { e1, e2 };
                   enum EType2 { e1, e2 };
               };

e1,e2名字相同程序会报错。

参考:
1、C++类中的枚举类型
2、https://blog.csdn.net/WizardtoH/article/details/81010433

2、联合、

这个主要是看侯捷先生的内存管理的视频,在写类自己的allocator时(内存管理视频13,per_class allocator 2),看到的一个例子:
在这里插入图片描述

1、对于class Airplane中的union,它是一个匿名的union,图片上面有解释,若加上名称便是type定义式,未加名称则是anonymous union,{ }内便是变数声明。

2、类的成员都可以直接使用union中声明的变量rep以及next

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++类中嵌套enum(枚举)、union(联合)、struct(结构体)类型 的相关文章

  • String StringBuffer 和 StringBuilder

    1 String StringBuffer 和 StringBuilder 的区别是什么 String 为什么是不可变的 简单的来说 String 类中使用 final 关键字字符数组保存字符串 private final char val
  • Linux下rz,sz与ssh的配合使用

    一般来说 linux服务器大多是通过ssh客户端来进行远程的登陆和管理的 使用ssh登陆linux主机以后 如何能够快速的和本地机器进行文件的交互呢 也就是上传和下载文件到服务器和本地 与ssh有关的两个命令可以提供很方便的操作 sz 将选
  • 使用dplyr包的rename函数为R语言中的数据框中的所有列重命名

    使用dplyr包的rename函数为R语言中的数据框中的所有列重命名 在R语言中 dplyr是一个强大的数据处理包 它提供了一系列函数来操作数据框 其中 rename函数可以用于为数据框中的列进行重命名操作 本文将详细介绍如何使用dplyr
  • C++ Lambda表达式(匿名函数): [](){}

    C Lambda表达式 匿名函数 Lambda 匿名函数表达式 1 完整的声明格式如下 1 1 省略声明形式 2 使用示例 作为STL中的仿函数functor充当谓词函数 3 Lambda函数中的变量截取规则 修改捕获变量 mutable关
  • 微信公众号H5利用JS-SDK中的开放标签wx-open-launch-weapp跳转第三方小程序

    场景 在微信公众号的h5页面中有这样一个需求 需要跳转到第三方小程序 我这里主要记录一下使用JS SDK中的开放标签wx open launch weapp来实现跳转 以及我在需求中遇到的一些问题 以及怎么解决的 我是使用的HBuilder
  • 等价类划分法设计用例(超详细)

    等价类划分法 等价类 1 解决了不能穷举测试的问题 控制成本 控制测试用例数量 2 数据值要明确 对文字敏感 3 依据需求将输入划分为若干个等价类 划分等价类 需求 数据特征 等价类设计用例的难点 如何根据时间成本划分等价类 等价类分为 1
  • aircrack-ng渗透WPA加密

    目录 一 WPA概念介绍 二 工作原理 三 wifi设置 1 打开wifi设置网站 2 选择无线配置 3 选择加密方式 四 打造字典 1 crunch生成密码 2 手工打造 五 渗透步骤 1 查看网卡 2 开启监听模式 3 扫描wifi 4
  • 2019-2-28 dvwa学习(4)--sql注入级别impossible

    继续把dvwa环境安全级别调整为impossible 观察界面 看上去似乎和low级别没有大的区别 只是浏览器中get方法提交的参数多了一个 impossible php代码如下
  • 相似性度量准则(距离 相似系数)

    在分类聚类算法 推荐系统中 常要用到两个输入变量 通常是特征向量的形式 距离的计算 即相似性度量 不同相似性度量对于算法的结果 有些时候 差异很大 因此 有必要根据输入数据的特征 选择一种合适的相似性度量方法 令X x1 x2 xn T Y
  • 数据结构 实验一 顺序表的操作

    一 顺序表的操作 任务一 初始化一个顺序表并输出 相关知识 需要掌握 1 结构体变量初始化 2 如何遍历顺序表 结构体变量初始化 定义结构体变量的同时 给结构体变量的各个成员变量赋值 示例如下 sequenlist sq 1 3 6 7 3
  • 【Linux】文件的权限

    权限笼统分为两种一种是人的权限 一种是文件的访问权限 而root 管理员 具有Linux最高的权限 最多只有一个 而普通用户可以有多个 要受到权限的约束 一 切换root权限 既然root是最大的权限 那么这里就来了解一下如果切换到root
  • 六、pcb文件设计规则

    设计pcb文件的布线规则 1 普通线宽为6mil 电源线或者需要加强的信号线宽为15mil 点击设计 gt 规则 进行信号线的设计 设置为6mil 如图 2 设置过孔规则 如图 设置过孔大小为12mil 过孔直径为22mil 3 新建一个类
  • Intellij idea 快捷键(1)--生成for循环代码块

    使用Intellij idea 时 想要快捷生成for循环代码块 itar 生成array for代码块 for int i 0 i lt array length i array i itco 生成Collection迭代 for Ite
  • 程序员职业的未来会受到失业的影响吗?

    关于提到的程序员未来是否会失业的问题 这是一个复杂而有争议的话题 虽然自动化和人工智能的发展可能对某些程序员的工作产生一定冲击 但是在同样的时间 也会产生新的就业机会和需求 技术的不断进步需要我们持续学习和适应 同时培养创新能力和解决问题的
  • servlet容器、web容器、spring容器、springmvc容器

    容器介绍 web容器中有servlet容器 spring项目部署后存在spring容器和springmvc容器 其中spring控制service层和dao层的bean对象 springmvc容器控制controller层bean对象 se
  • Java工程师看过来:入门到高级书单都在这!

    关于程序员 除了做项目来提高自身的技术 还有一种提升自己的专业技能就是 多 看 书 Java程序员你们准备好了吗 我们大圣众包 www dashengzb cn 双手奉上Java程序员必读之热门书单 入门 HeadFirstJava 作者
  • oracle 9i在线重定义功能应用于生产库

    今天 在客户生产库了用oracle 9i的在线重定义功能实现了由普通表转换为分区表的实施 总体实施过程还算 比较顺利 以下是测试过程 create test mid table create table test test mid ID N
  • python下使用libsvm:计算点到超平面的距离

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 最近在看的资料里涉及到计算 点到支持向量机分类超平面的距离 这一点内容 我使用的svm是libsvm 由于是新手 虽然看了一些资料 但中英转换误差等等原因导致经常出现理解错

随机推荐

  • Postman post请求返回错误状态码总结

    目录 Postman 踩坑总结 一 404 page not found 1 请求的参数不对 比如是POST请求但是参数却写的是GET 2 页面url写错或不存在 二 status 500 最近在使用Postman对接口进行测试 踩了几个坑
  • springboot2集成knife4j(swagger3)

    springboot2集成knife4j swagger3 springboot2集成knife4j swagger3 环境说明 集成knife4j 第一步 引入依赖 第二步 编写配置类 第三步 放行相关资源 保证启动了knife4j 第四
  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

    目录 1 需求分析 1 1 1 数据需求描述 1 1 2 系统功能需求 3 1 3 其他性能需求 4 2 概念结构设计 4 2 1 局部E R图 4 2 2 全局E R图 5 2 3 优化E R图 6 3 逻辑结构设计 6 3 1 关系模式
  • php 实现excel打包下载

    场景说明 举例说明 一个表单下面有多个提交的留言 导出这些留言 并且一个表单是一个excel 生成zip压缩包 msgList是数据 这里我将要导出的列表 列标题 名称都放在了一个变量中传递过来了 具体的数据结构如下 msgList for
  • java.lang.NoClassDefFoundError: com/jhlabs/image/RippleFilter 验证码功能报此错误的解决办法

    利用kaptcha实现验证码功能时报以下错误 原因时缺少jar包 下载并添加jar包即可 缺少的jar包如下 java lang NoClassDefFoundError com jhlabs image RippleFilter com
  • 深度学习在CV领域的进展以及一些由深度学习演变的新技术

    CV领域 1 进展 如上图所述 当前CV领域主要包括两个大的方向 低层次的感知 和 高层次的认知 2 主要的应用领域 视频监控 人脸识别 医学图像分析 自动驾驶 机器人 AR VR 3 主要的技术 分类 目标检测 识别 分割 目标追踪 边缘
  • [转载]ubuntu编写shell文件基础

    https www cnblogs com tnxk archive 2012 08 09 2630195 html
  • C语言:二叉排序树的操作

    实现的功能 1 建立二叉排序树 2 输出中序遍历结果 3 查找数据 0 退出 代码 include
  • conda与pip

    通过conda info命令查看当前的镜像源 设置conda的镜像源 conda config add channels https mirrors tuna tsinghua edu cn anaconda pkgs free conda
  • 网络安全的不同角度

    扫盲 相关概念 DevSecOps FreeBuf咨询 快HVV了 聊聊攻防演练中安全产品的安全性 FreeBuf甲方群 https www freebuf com articles neopoints 266464 html FreeBu
  • gdb常用操作

    一 gdb功能介绍 程序调试工具 可以动态的改变程序的执行环境 二 gdb使用 1 运行 1 gdb 程序名 2 gdb 程序名 p 进程号 3 gdb运行 输入attach 进程号 2 查看变量 1 p 变量名 2 p 10x 变量名 3
  • JSON语法及JSON定义规范化

    一 前言 JSON JavaScript Object Notation JS对象标记 是一种轻量级的数据交换格式 它是基于 ECMAScript 的一个子集 采用完全独立于编程语言的文本格式来存储和表示数据 二 JSON 语法规则 在 J
  • Phoneme的相关概念以及Triphone

    Phoneme的相关概念以及Triphone 目录 Phoneme的相关概念以及Triphone 前言 可用来训练HMM的基本单位 1 词 words 3 单音 syllables 4 音素 phonemes 5 Triphone 中文 基
  • Android App完全退出方式

    第一种方式是创建一个MyApplication类 继承Application 在AndroidManifest xml的application标签配置android name 并在其中加入一个 List
  • 信捷 XD PLC 16位整数转换为双精度浮点数

    完成16位整数转换为双精度浮点数 信捷XD PLC需要两个指令 逐步转换 一个指令搞不定 具体的 第1步 int16 gt int32 第2步 int32 gt Double 例子 比如说将D0转换成浮点数放到D100 D103
  • 阿里云服务器开放宝塔面板8888端口配置安全组教程

    默认情况下 阿里云处于安全考虑 仅开放了80和3389端口 云吞铺子以开放8888端口为例 1 登录到云服务器ECS控制台 2 在实例列表中 点击 更多 网络和安全组 安全组配置 或者在这 3 手动添加安全组规则 云吞铺子以添加宝塔面板管理
  • ubuntu16.04安装opencv3.4.5时出错及解决方法

    ubuntu16 04安装opencv3 4 5时 参考这篇文章 运行 cmake D CMAKE BUILD TYPE Release D CMAKE INSTALL PREFIX usr local 出现了错误 CMake Error
  • Go语言基础(一)

    Go语言具有支持高并发 语法简洁等特点 变量 Go语言中变量的定义可以直接定义 不需要基本数据类型 这些会自动帮你定义 但是你也可以写出变量的类型 放在变量的后面 还有一种是直接使用 来定义变量 var a initial var b c
  • spring cloud 通过Ribbon配置负载均衡 和Hystrix熔断器

    前言 本篇博客是基于上一篇博客的再度扩展springcloud项目配置 Ribbon是用于实现负载均衡的 Hystrix是用于超时的方法返回一个兜底数据的 Ribbon配置 1 在RestTemplate上加注解 LoadBalanced
  • C++类中嵌套enum(枚举)、union(联合)、struct(结构体)类型

    1 枚举 include