zoukankan      html  css  js  c++  java
  • c++中如何定义编译期间常量,即这个常量可以用于定义数组下标

    在c++中,类里面的成员变量不仅仅可以被const修饰,还可以被static const修饰,此时一个内建类型(如int ,char ,long等)的static const 可以看做是一个编译期间的常量,可以被用作数组下标

    例如:

    class StringStack{
       static const int size=100;//虽然可以在类的外部用const int StringStack::size=100初始化,但是这样就不可以作为数组下标了
        int a[size];//作为数组下标出现
    
    
    
    };

    《thinking in c++》中page198:必须在static const 定义的地方对它进行初始化,这是在类中使用static const的特征之一,也显得有点与众不同。这种情况只会伴随static const一起出现:也行更喜欢把它用在其他情况下,但不行,因为所有其他的数据成员必须在构造函数或者其他成员函数中初始化。

    另外一种在老版本c++中可以见到的一种可以用无标记的enum来定义一个编译期间常量,从而作为数组下标

    1 class Bunch{
    2 
    3    enum{size=100};
    4    int i[size];
    5 
    6 
    7 };
  • 相关阅读:
    c#2005中的各个控件转换为html代码
    支付宝接口参数详谈
    IE6兼容菜单
    cookie版购物车
    火狐执行子页面方法
    easyui中datebox文本框输入非数字报错的改善
    右侧悬浮菜单
    内边距、边框和外边距
    自我超越
    DateUtils 时间工具类
  • 原文地址:https://www.cnblogs.com/cplinux/p/5598160.html
Copyright © 2011-2022 走看看