嗨,大家好,我是出生在达纳苏斯的一名德鲁伊,我是要立志成为海贼王,啊不,是立志成为科学家的德鲁伊。最近,我发现我们所处的世界是一个虚拟的世界,并由此开始,我展开了对我们这个世界本源的探索。那么就由我来带领大家拨开迷雾,深入探究我们世界的根本。
那么我们继续分析src/server/apps/authserver目录下的Main.cpp
SERVER_PROCESS_AUTHSERVER就是我们的第二个知识点,枚举类型。
枚举类型
枚举类型是C++中的一种用户定义数据类型,它由一组整数常量组成。在C++中,枚举类型使用关键字enum来声明。枚举类型的声明形式如下:
enum TypeName {
enumerator1,
enumerator2,
// ...
};
枚举类型的声明中,TypeName是枚举类型的名称,enumerator1、enumerator2等是枚举类型的取值。默认情况下,enumerator1的值为0,enumerator2的值为1,以此类推。
在C++中,枚举类型的变量只能取枚举类型中定义的值。例如:
enum Color {
RED,
GREEN,
BLUE
};
Color selectedColor = RED;
在这个例子中,selectedColor变量只能取RED、GREEN或BLUE中的一个值。
枚举类型在C++中通常用于定义一组相关的常量,例如表示星期几、颜色等。枚举类型的使用可以提高代码的可读性和可维护性。
在C++11中引入了enum class,它可以为枚举类型提供作用域,使得枚举类型的取值更加严格和安全。例如:
enum class Week {
MONDAY,
TUESDAY,
WEDNESDAY
};
Week today = Week::MONDAY;
通过使用enum class,可以避免枚举类型的取值发生混淆,提高代码的健壮性。
总之,枚举类型是C++中一种非常有用的数据类型,它可以用于定义一组相关的常量,并且在C++11中引入的enum class进一步增强了枚举类型的功能和安全性。
类比学习
假设你要完成一幅美丽的画卷,你要用到10种颜料。如果你每一次涂色,都要先从10种颜料中先找到当前所需的颜料,然后再上色,那效率未免太低。此时我们将颜料放到一个排列整齐的颜料盘中,那我们就可以很快的找到所需颜料,并且也不容易出现颜色相近颜料搞混了的情况。这个排列的过程,就是一种枚举的过程。
代码解析
AZ中ServerProcessTypes的枚举,主要就是要标记好authserver和worldserver进程,防止在写代码时搞混了type的值,导致两个程序互相串台了。
好了,今天就到这里吧,我要去呵护我的世界之树了,拜拜。