设为首页 加入收藏

TOP

C++ 实现static const在类声明中指定初…
2012-11-28 12:59:24 来源: 作者: 【 】 浏览:342
Tags:  实现 static  const 声明 指定

    在早期的c++ 编译器中无法在class的定义区为static const member(这里的member必须为整数类型int、char、enum等)赋初值,而晚些的c++编译器可能可以这么做.但是const member的使用习惯是在定义的时候赋值,并且在其他的地方不能改变其值.所以,这就形成了矛盾,使得我们大部分时候而不得不将放弃使用static const member.下面的代码即为此种矛盾:

    class object {

    public:

    ...

    private:

    static const int objectNum = 1;//这在最早的编译器是不允许的!

    }

    上面的定义在许多编译器会报错.

    下面我们将介绍两种方法来实现将static 对象赋予初值.

    方法1:我们不妨将objectNum声明为enum类型,但是该枚举类型只有一种类型.具体实现方式如下:

    class object {

    public:

    ...

    private:

    enum {objectNum =1};

    }

    这里直接使用objectNum对象,其值为常量.实现static const在类声明中指定初值.

    方法2:将const static采用non-const static 一样处理.

    class object {

    public:

    ...

    private:

    static const int objectNum ;//当成non-const member不赋初值

    };

    static  int object::objectNum =1;//在类实现文件中赋值

    采用上面的两种方法,解决了static const对象在类声明中指定初值的疑惑!

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC--用DLL生成LIB文件 下一篇C++使用wkhtmltopdf的API的配置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: