自学C++——自定义数据类型

一,typedef声明

     在编写程序时,除了可以使用内置的基本数据类型名和自定义的数据类型名外,还可以为一个已有的数据类型另外命名。

     类型命名的语法形式:

     typedef 已有类型名  新类型名表;

     其中,新类型名表中可以有多个标识符,之间以逗号分隔。

     例如:

     typedef double Area,Volume;

     typedef int Natural;

     Area a;

     Volume v;

二,枚举类型 enum

     将变量的可取值一一列举出来,便构成了一个枚举类型。声明形式如下:

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

     例如:

     enum Weekday {SUN,MON,TUE ,WEN,THU,FRI,SAT};

     枚举类型应用说明:

  1.  对枚举常量按常量处理,不能赋值。
  2. 枚举元素有默认值,依次为:0,1,2,···。
  3. 也可以在声明时另行定义枚举元素的值,如:

     Enum Weekday {SUN=7,MON=1,TUE,WEN,THU,FRI,SAT};

     定义SUN为7,MON为1,以后顺序加1,SAT为6。

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

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

 例:输出比赛的四种情况

#include
using namespace std;
enum GameResult {WIN,LOSE,TIE,CANCEL};
int main() {
    GameResult result; //声明枚举变量
    enum GameResult omit = CANCEL;//也可以加上enum
    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;

}

 运行情况:

The game was played and we won!
The game was played and we lost.
The game was played
The game was cancelled

D:\C++练习\Project1\x64\Debug\Project1.exe (进程 52736)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .

你可能感兴趣的:(c++,enum)