zoukankan      html  css  js  c++  java
  • 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;
    }

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

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

    问题

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

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

    1. 类的const常量
    2. 类的引用类型成员
    3. 没有默认构造函数的类类型成员
    4. 如果类存在继承关系,派生类必须在其初始化列表中调用基类的构造函数
  • 相关阅读:
    json_encode([0])
    try catch throw
    如何 lookback
    协程||进程
    客户错了?
    循环 php 变量会影响到传入的参数
    csv变成xls, csv乱码
    虚拟机不能git push
    数组下标大小写
    php 静态方法
  • 原文地址:https://www.cnblogs.com/phpandmysql/p/10835889.html
Copyright © 2011-2022 走看看