C++ 结构体/枚举总结
来源:互联网 发布:易语言英语考试软件 编辑:程序博客网 时间:2024/06/05 04:40
1:结构体
1.1 定义结构体的方式
1)c++允许将声明结构变量时省略struct ,但是c语言必须要求添加
2) 将定义和变量声明分开更加易于阅读和理解
3)定义方式4中由于没有类型名称,所以以后无法创建这种类型的变量,不建议使用此方式
4)结构体与数组的区别:数组只能创建一种类型的变量,但是结构体可以创建多种类型的变量。
5) 结构体与类的区别 :结构体的内的成员都是公用的,但是类成员有公有和私有。其实结构体是类的基石。将接近oop
6)将结构体声明在函数内部还是外部声明的区别:外部声明可以被下面的所有函数使用
//text struct A{char name[10];int age;}struct B{char name[10];int age;}mr_tat,_mr_hat; //define two B variablesstruct C{char name[10];int age;}mr_tat ={ char name[10];int age;}struct //no define tag{char name[10];int age;}pot;// because not define the
定义结构体后就可以创建这种类型的变量 如:A hat;
1.2 结构体初始化:
A hat =
{
"ahbnd",
1.99
};
或者是
A cat = {"ckjdf",9};
对应的成员变量:hat.age;等。
1.3 结构数组
1.3.1 可以创建元素为结构体的数组,如要创建一个包含100个A结构的数组: A gitfs[100]; 则每个元素(gifts[0]到gifts[99]都是A的对象);
可以进行如下操作: cin >> gifts[0].age; 等
1.3.2 初始化结构数组
A gifts[2] = {{"hat",9}, {"dog",13}};
2: 枚举
2.1 enum定义
提供了另一种创建符号常量的方式。
如:enum spectrum {red, orange,yellow,green, blue, violet, indigo}; 该式子 将spectrum作为一个新的类型。red yellow 作为符号常量,对应的数值为0~~~6
1) 对于枚举,只定义了赋值运算 如 在不进行转换的时候 band = red;//valid band = 2000;//not valid
2)没有为枚举定义算术运算 如; band = red + blue;// not valid
2.2 设置枚举量的值
1) 指定的值必须是整数, 如: enum bits{one = 1, two = 2, four = 4, eight = 8 };
2)也可以只显式的定义其中一些枚举量 enum big {first, second = 100, third}; 其中first默认情况下为0,后面没有初始化的值将比前面的大1,因此third= 101
3) 枚举的强制类型转换 如band = spectrum(3);
3 结构体中含有枚举
///////////////////enum Module{ID_LINE,ID_COVER,ID_RIVERT,ID_LAYOFF};struct StartModule{Module RunModule;CString m_strClass;BOOL m_bFinish;BOOL m_bInilize;BOOL m_bStart;BOOL m_bEndWork;};////////////////////////////m_RunModule 是StartModule的对象void CMachineCtrl::SetModuleInfo(int nID,CString Name,BOOL bFinish,BOOL bStart,BOOL bInilize,BOOL bEndWork){m_RunModule.m_bFinish = bFinish;m_RunModule.m_bInilize = bInilize;m_RunModule.m_bStart = bStart;m_RunModule.m_strClass = Name;m_RunModule.m_bEndWork = bEndWork;m_RunModule.RunModule = Module(nID);//nID 是int类型,进行强制类型转换}
注; 参考资料为; c++ primer plus 第四章 部分内容
- 【C语言总结】结构体、联合、枚举
- C++ 结构体/枚举总结
- C结构体和枚举
- Swift 类,结构体,枚举使用总结
- 总结结构体枚举联合位段
- 黑马程序员——C语言知识点总结之结构体和枚举
- C中的结构,联合,枚举(持续总结中...)
- C语言中的结构体和枚举
- C语言基础知识----联合 && 枚举 && 结构体
- C语言基础 结构体 枚举
- C语言基础之结构体、枚举
- C语言--结构体和枚举
- C语言------结构体、枚举类型
- C语言中的结构体和枚举
- C语言结构体、枚举、联合
- C语言-结构体+联合体+枚举
- [C++]结构体、共同体和枚举类型
- 初识c#---枚举和结构体
- JAVA中数字类型与字符串之间的转换
- MySQL按年龄段查询
- 一个关于tomcat乱码的问题
- 使用zoom、overflow解决IE6、IE7、火狐浏览器下嵌套容器清除浮动问题
- 用TorToiseGit来管理github上的项目
- C++ 结构体/枚举总结
- 基于文件列表批量拷贝文件
- uboot学习
- The 'Microsoft.ACE.Oledb.12.0' provider is not registered on the local machine
- jQuery写组件适当暴露
- xcode 证书清理
- 从太极助手事件看移动应用市场
- Chromium源码获取与编译--附加一个简单例子的编译
- C++通过虚函数表调用虚函数