LinuxSky:让我们一起学习Linux。

深入讨论C++的enum

enum的秘密<一>:enum是“用户自定义类型”

    呵呵,enum在实际中应用比较少,所以你会忽略它。但是,在这里,我告诉你,enum 和 struct、class一样,都是用户自定义类型。
    对呀!enum是用户自定义类型,他有数据成员,还有成员函数!
For example:
    enum e{a=1 , b=2 , c=4};
那么:
    001: enum e e1;        //enum e不是对象,它是类型,e1才是类型enum的对象!
    002: e e1;                //e是类型enum e的简写哦!

    003: e1 = 1;              //绝对的错误!int怎能赋值给一个用户自定义类型
    004: e1 = e();            //e()? 对呀,你没看错,默认构造函数
    005: e1 = e(1)           //e(int)? 嘿嘿,这才是从int构造enum e类型对象的构造函数
    006:e1 = a;              //哈哈,默认调用“拷贝构造函数”···虽然有点不完备

大胆的想:enum会不会有用户自定义成员函数呢?呵呵,我是没有实验出来。要不,你自己试试?
感想:C++虽然是初期的OO语言,但是类型化的概念已经深入到了语言本身。面对一门OO语言,你要必须知道一件事:一切都是对象,一切都有类型···

enum的秘密<二>:enum的“取值范围”和“内存分配”

先纠正一个常见错误,很多人认为enum是个离散量集合,太理想化了^_^,简单思考一下就破了,不多说,入正题:
如何确定一个enum的取值范围?
For example:
            enum e1{ a=2, b=4 };
标签:c++ enum
分类: 程序开发 | 发布:jediii | 查看: | 发表时间:2008/02/09
分享按钮

相关文章

文章评论

站内资料部分由本人收集整理,所有文章版权均系原作者和出版者所有,如涉版权问题,恳请来信告知!