在构造函数的初始化列表中初始化数组

时间:2012-06-04 00:17:20

标签: c++ arrays constructor initialization

我正在尝试在构造函数的初始化列表中初始化一个数组,我希望数组的大小为MAX_SIZE,这是我的Stack类中的公共静态const。我怎样才能让它发挥作用?编译器抱怨说,他们在将'double'分配给'double [0u]'时有不兼容的类型

这是我的代码:

class Stack {
    public:      
          Stack();
          static const unsigned MAX_SIZE; 
    private:
          double array[];
          unsigned elements;     
    };  // class Stack

    Stack::Stack(): array( array[MAX_SIZE] ), elements(0) {}

    const unsigned Stack::MAX_SIZE = 4;

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

 class Stack {
        public:
              Stack();
              static const unsigned MAX_SIZE = 4;
        private:
              double array[MAX_SIZE];
              unsigned elements;
        };  // class Stack

 Stack::Stack():  array(), elements(0) {}

但是,如评论中所述,std::vector会更好。