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

Initialize array in constructor's initialization list

本文关键字:初始化 数组 列表 构造函数      更新时间:2023-10-16

我正在尝试初始化构造函数初始化列表中的数组,我希望数组的大小为MAX_SIZE,这是我的 Stack 类中的公共静态常量。我怎样才能让它工作?编译器抱怨说,他们在将"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;

提前感谢您的帮助。

 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会更好。