const成员变量
Posted phpandmysql
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const成员变量相关的知识,希望对你有一定的参考价值。
#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; }
枚举常量不会占据对象的存储空间,在编译时被全部求值
但是,它隐含的数据对象类型为整形,不能表示其他类型。
问题
如何定义在类中定义非整形常量?(待解决)
话说有几个地方必须在构造函数的初始化列表中:
- 类的const常量
- 类的引用类型成员
- 没有默认构造函数的类类型成员
- 如果类存在继承关系,派生类必须在其初始化列表中调用基类的构造函数
以上是关于const成员变量的主要内容,如果未能解决你的问题,请参考以下文章