免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2289 | 回复: 2
打印 上一主题 下一主题

关于枚举类型实现机制的猜测 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-02 11:52 |只看该作者 |倒序浏览
刚接触枚举类型的时候,猜测枚举类型实际上是由数组实现的,比如是一个存储const int 类型的数组,比如
enum weather{sunny,rainny,snowy};内部是由类似于const int weather[]={0,1,2};这样的数组来实现的,后来才发现这种想法的幼稚。
现在有了一些新的理解,枚举类型是一种由c++定义了框架和操作,由使用者在框架的基础上实例化的数据类型,就像我们用class定义的类型,但是该类型的数据结构的框架和操作是由c++本身定义的,而用户则可以此基础上创建出具体的枚举类型,如果各位达人有异议,欢迎尽情反驳哦,小弟在此……那啥了!

论坛徽章:
0
2 [报告]
发表于 2010-03-02 11:59 |只看该作者
本帖最后由 gtkmm 于 2010-03-02 12:03 编辑

$ cat -n xx.cc
     1        enum TEST{ HELLO, WORLD};
     2       
     3        TEST        test;
     4       
     5        #include <iostream>
     6        void do_something();
     7        int main( ){
     8            std::cout << test << std::endl;
     9            do_something();
    10            std::cout << test << std::endl;
    11        }
$ cat -n yy.cc
     1       
     2        extern int test;
     3       
     4        void do_something(){
     5            test += 1;
     6        }
$ g++ xx.cc yy.cc -o autofool
$ ./autofool
0
1
$

论坛徽章:
0
3 [报告]
发表于 2010-03-02 12:02 |只看该作者
悲剧天天有..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP