5

コンストラクターの初期化リストで配列を初期化しようとしていますが、配列のサイズをMAX_SIZEにします。これは、Stackクラスのpublicstaticconstです。どうすればそれを機能させることができますか?コンパイラは、「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;

よろしくお願いします。

4

1 に答える 1

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コメントで述べたように良いでしょう。

于 2012-06-04T00:32:40.647 に答える