首页 > 其他 > 详细

const成员变量

时间:2019-05-09 01:06:04      阅读:146      评论:0      收藏:0      [点我收藏+]
#include <iostream>
using namespace std;

class A
{
    public:
        A(int size) : SIZE(size) {};
    private:
        const int SIZE;
};

int main()
{
    A a(100);
}

说明

  • 在类中声明变量为const类型,但是不可以初始化
  • const常量的初始化必须在构造函数初始化列表中初始化,而不可以在构造函数函数体内初始化

但是

 此时的const变量属于具体的一个对象,如何在整个类中都恒定不变呢?

 答案是利用枚举,举例

#include <iostream>
using namespace std;

class A
{
    private:
        enum {SIZE = 100};
    public:
        int array[SIZE];
};

int main()
{
    A a;
}

枚举常量不会占据对象的存储空间,在编译时被全部求值

但是,它隐含的数据对象类型为整形,不能表示其他类型。

问题

如何定义在类中定义非整形常量?(待解决)

 

话说有几个地方必须在构造函数的初始化列表中

  1. 类的const常量
  2. 类的引用类型成员
  3. 没有默认构造函数的类类型成员
  4. 如果类存在继承关系,派生类必须在其初始化列表中调用基类的构造函数

const成员变量

原文:https://www.cnblogs.com/phpandmysql/p/10835889.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!