Chinaunix首页 | 论坛 | 博客
  • 博客访问: 128728
  • 博文数量: 62
  • 博客积分: 1476
  • 博客等级: 上尉
  • 技术积分: 662
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-03 16:38
文章分类

全部博文(62)

文章存档

2010年(14)

2009年(48)

我的朋友

分类: C/C++

2009-12-03 18:34:33

都怪偶当年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) |
给主人留下些什么吧!~~