c++中的struct和enum关键字

本文详细介绍了C++中struct与enum的使用。C++的struct已经扩展得与class非常相似,包括支持成员函数、继承等特性,但默认访问权限为public。enum则在C++中增加了新的定义格式,以避免与C语言中的enum潜在问题,如枚举元素被视为绝对常量,不可直接参与整型运算。同时,enum的定义方式也限制了手动更改元素的对应值。
摘要由CSDN通过智能技术生成

struct和enum关键字

struct


  1. c++中的结构体struct:之所以单独提及c++中的结构体是因为在c++中,结构体的这个类型已经得到了完全的扩充,事实上几乎完全可以将结构体struct与类class相互替换,只需注意些许细微的差异即可,是的,在c++中,结构体这一类型本身已经被扩充到和类几乎完全一样了,成员函数、继承、派生、基类、虚基类、虚函数、纯虚函数等性质均被引入到了结构体中,同时在声明结构体实例的时候也完全可以选择性带上或者不带struct关键字(C语言中强制带上),如上所言c++中结构体甚至可以说成是类类型的别名也无大错,性质也几乎都可参照类类型,故这里只讨论struct与class的几个需要注意的不同之处。
  2. 类类型的默认访问权限为private(如 不加任何权限说明符时声明的成员为private,不加任何权限说明符的继承方式为private),结构体的默认访问权限为public(如 不加任何权限说明符时声明的成员为public,不加任何权限说明符的继承方式为public),当然,尽量显式声明访问权限是个好习惯。
  3. class关键字除了定义类类型,还可以用于模板(等同于typeneme),而struct关键字则没有这一性质。
  4. 当仅作为数据集合来使用结构体时不应该为其添加类类型的性质(如构造函数、析构函数等),仅仅如同在C语言中一样使用就好,当想要作为一个类来使用的时候则应当增添属于类类型的相关基本属性(如构造函数、析构函数等)

enum


  1. c++中的enum:c++中的enum的定义格式与C语言有些许不同,其主要是为了规避C语言的enum存在的一些潜在的问题(及将enum元素实际当做int来使用)
  2. 格式:
    • enum class type_NAME{factor1, factor2, …};
  3. 差异:
    • 在C语言中,enum元素被视为int,故可以参与int的比较或是运算,但在c++中的上述定义下则不可以
    • 在C语言中,定义时元素的对应值可以手动更改(如:factor2 = 100, factor3,…),但在上述定义下则不可以
    • 上述定义下的枚举被视为绝对的常量,可以视作字面常量进行运用(如switch中的case)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C语言所有关键字的意思及用法: auto:自动变量关键字,用于定义自动变量。 break:跳出循环语句或switch语句。 case:switch语句的分支标签。 char:字符类型关键字,用于定义字符变量。 const:常量关键字,用于定义常量。 continue:继续循环语句执行。 default:switch语句的默认分支。 do:循环语句关键字,用于执行循环体。 double:双精度浮点数类型关键字,用于定义双精度浮点数变量。 else:条件语句关键字,用于表示条件不成立时的执行操作。 enum:枚举类型关键字,用于定义枚举类型。 extern:外部变量或函数关键字,用于引用其他文件的变量或函数。 float:单精度浮点数类型关键字,用于定义单精度浮点数变量。 for:循环语句关键字,用于执行循环体。 goto:无条件跳转关键字,用于跳转到指定标签处。 if:条件语句关键字,用于表示条件成立时的执行操作。 int:整型类型关键字,用于定义整型变量。 long:长整型类型关键字,用于定义长整型变量。 register:寄存器变量关键字,用于定义寄存器变量。 return:函数返回关键字,用于从函数返回值。 short:短整型类型关键字,用于定义短整型变量。 signed:带符号类型关键字,用于定义带符号类型变量。 sizeof:计算数据类型大小关键字,用于计算数据类型所占的字节数。 static:静态变量或函数关键字,用于定义静态变量或函数。 struct:结构体类型关键字,用于定义结构体类型。 switch:多分支选择语句关键字,用于根据不同的条件执行不同的操作。 typedef:类型定义关键字,用于定义新的数据类型。 union:共用体类型关键字,用于定义共用体类型。 unsigned:无符号类型关键字,用于定义无符号类型变量。 void:空类型关键字,用于表示无返回值或无参数的函数。 volatile:易变变量关键字,用于定义易变变量。 while:循环语句关键字,用于执行循环体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值