都怪偶当年C++学得不够硬,最近弄QT编程,发现里面有一种使用枚举的方法,跟Java中的类内部常量使用非常相似,用起来感觉特别爽,在此,我仅列三个例子出来,大家看了自会明白,不过还望高手们见了不要见笑:
//enum1.cpp, compiler:g++-4.4.0
#include
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
int main()
{
int x = Sun; //注意!!Days::Sun 错误,Days不是一个名字空间或类
int y = Fri; //可以这样用,就像使用宏定义一样,不过与宏不一样的是,这里会涉及编译器检查,而不是像宏一样,只由预处理器处理
printf("Sun = {%d}", x);
printf ("Fri = {%d}", y);
return 0;
}
//enum2.cpp, compiler:g++-4.4.0
#include
namespace Days
{
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
}
int main()
{
int x = Days::Sun; //注意!!x = Sun 错误,与Sun不在同一个名字空间或类中
int y = Days::Fri; //可以这样用,就像Java类内部的常量一样,我个人比较推崇这样使用,将枚举的使用空间仅限于类中,有利于封装和模块化,减少类对全局的影响
printf("Sun = {%d}\n", x);
printf ("Fri = {%d}\n", y);
return 0;
}
//enum3.cpp, compiler:g++-4.4.0
#include
class File
{
public:
enum OpenMode { READ, WRITE};
void open( OpenMode , const char* filename ){};
};
int main()
{
File file;
file.open(File::READ,"c:\\1.txt"); //这样的用法比较high吧^_^
return 0;
}
阅读(595) | 评论(0) | 转发(0) |