enum关键字:通过自己定义类型,可以在一定情况下避免参数混乱。
比如一个日期的初始化
Date(6,7);
Date(7,6);
按照不同的风格和习俗,会让有的人以为是6月7日,让有的人以为初始化为7月6日。
如果在设计的时候设计为Date(June,7) 或 Date(6,July)
这样就能在一定情况下避免参数混淆。
在类中enum的使用如下例,
#include <iostream>
using namespace std;
class hello
{
public:
enum Num{one=1,two,three,four,five,six,seven,eight,nine,ten};
hello(int _t = default_t.times,Num _num =default_t.num ):times(_t),num(_num){};
static void set_default(int,Num);
void print();
private:
int times;
Num num;
static hello default_t ;
};
void hello::print()
{
for(int i=0;i!=times;i++)
cout<<"hello"<<endl;
cout<<num<<endl;
}
void hello::set_default(int _t,Num _num)
{
hello::default_t.times = _t;
hello::default_t.num = _num;
}
hello hello::default_t(3,one);
int main(int argc, char* argv[])
{
//hello hello_world(2,hello::two); //注意hello:two 这种形式
hello::set_default(10,hello::nine);
hello hello_world;
hello_world.print();
return 0;
}
补:enum的默认值是怎样确定的