小奥的学习笔记

  • Home
  • Learning & Working
    • Speech Enhancement Notes
    • Programming language
    • Computer & DL
    • MOOC
  • Life
    • Life Time
    • Thinking & Comprehension
    • Volunteer
    • Plan
    • Travel
  • Footprints
  • GuestBook
  • About
    • About Me
    • 个人履历
    • 隐私策略
  1. 首页
  2. Study-notes
  3. Programming language
  4. C/C++
  5. 正文

C++:自定义类型与不定作用域枚举知识点

2015年3月15日 3373点热度 0人点赞 1条评论

类型别名:为已有类型另外命名

typedef 已有类型名 新类型名表

例:

typedef double Area, Volume;

typedef int Natural;

Natural i1,i2;

Area a;

Volume v;

l using 新类型名 = 已有类型名;

例:

using Area = double;

using Volume = double;

枚举类型

定义方式:

将全部可取值一一列举出来。

语法形式:

enum 枚举类型名 {变量值列表};

例:enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};

默认情况下

SUN=0,MON=1,TUE=2,......,SAT=6

C++包含两种枚举类型:

不限定作用域枚举类型:

enum 枚举类型名 {变量值列表};

限定作用域的enum类将在第4章介绍。

不限定作用域枚举类型说明:

枚举元素是常量,不能对它们赋值

例如有如下定义
enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};

不能写赋值表达式:SUN = 0

l 枚举元素具有默认值,它们依次为: 0,1,2,......。

l 也可以在声明时另行指定枚举元素的值,如:

enum Weekday{SUN=7,MON=1,TUE,WED, THU,FRI,SAT};

l 也可以在声明时另行指定枚举元素的值;

l 枚举值可以进行关系运算。

l 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强
制类型转换。

l 枚举值可以赋给整型变量。

 

例2-11
设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序顺序输出这四种情况。
分析:

比赛结果只有四种可能,可以声明一个枚举类型。

#include <iostream>
using namespace std;
enum GameResult {WIN, LOSE, TIE, CANCEL};
int main() {
GameResult result;
enum GameResult omit = CANCEL;
for (int count = WIN; count <= CANCEL; count++) {
result = GameResult(count);
if (result == omit)
cout << "The game was cancelled" << endl;
else {
cout << "The game was played ";
if (result == WIN) cout << "and we won!";
if (result == LOSE) cout << "and we lost.";
cout << endl;
}
}
return 0;
}

auto类型与decltype类型

auto:编译器通过初始值自动推断变量的类型

例如:auto val = val1 + val2;

如果val1+val2是int类型,则val是int类型;

如果val1+val2是double类型,则val是double类型。

decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量

 

  • n 例如:decltype(i) j = 2;
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2015年3月15日

davidcheung

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • 游客乙

    整理知识点的习惯很好!

    2015年3月22日
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    搜索
    欢迎关注我的个人公众号
    最新 热点 随机
    最新 热点 随机
    DEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架 奥地利匈牙利九日游旅程 论文阅读之Study of the General Kalman Filter for Echo Cancellation 小奥看房之鸿荣源珈誉府 杭州往返旅途及西溪喜来登和万怡的体验报告 2022年的第一篇碎碎念
    奥地利匈牙利九日游旅程论文阅读之Study of the General Kalman Filter for Echo CancellationDEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架
    努力! 资料收集:Adobe CS6我所需要的软件下载集合 下学期微机课的第一篇日志 出道两年来自己的一些感悟 由梦比优斯奥特曼主题曲所想到的 关于更新github、微信公众号和博客周期的说明
    标签聚合
    linux leetcode 算法 Python 学习 Java 高中 python学习 鸟哥的linux私房菜 生活
    最近评论
    davidcheung 发布于 5 个月前(02月09日) The problem has been fixed. May I ask if you can s...
    tk88 发布于 5 个月前(02月07日) Hmm is anyone else having problems with the pictur...
    cuicui 发布于 9 个月前(10月20日) :wink:
    niming 发布于 10 个月前(09月19日) 同级校友,能刷到太巧了
    davidcheung 发布于 2 年前(08月16日) 我得找一下我之前整理的word文档看一下,如果找到了我就更新一下这篇文章。
    Nolan 发布于 2 年前(07月25日) 您的笔记非常有帮助。贴图不显示了,可以更新一下吗?
    davidcheung 发布于 3 年前(06月19日) 到没有看webrtc的代码。现在主要在看我们公司的代码了。。。只是偶尔看一看webrtc的东西。。。
    aobai 发布于 3 年前(03月13日) gain_change_hangover_ 应该是每三个block 只能够调整一次,这样保证每帧...
    匿名 发布于 5 年前(12月30日) 烫
    小奥 发布于 5 年前(12月12日) webRTC里面的NS本身我记得就是在C++里面呀

    COPYRIGHT © 2025 小奥的学习笔记. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    陕ICP备19003234号-1

    鲁公网安备37120202000100号