1. ホーム
  2. c++

[解決済み] error: Non-static data member の無効な使用

2022-02-08 10:23:54

質問

class Stack
{               
private:

    int tos;
    const int max = 10;    
    int a[max];
public:

    void push(int adddata);
    void pop();
    void printlist();
};

error: non-static data member 'max' の無効な使用。

このコードで何が問題なのか、そして適切な修正方法を教えてください。 ありがとうございます。

解決方法は?

ヒープ以外のアロケーションでは,コンパイル時に配列のサイズが分かっていることが必須となります. new を使用してメモリを確保します)。

C++11を使用している場合。 constexpr は、この目的のために特別に設計された、知っておくと良いキーワードです。

constexpr int max = 10;

C++11がまだの方は static を使用して、他の方が指摘されているように、コンパイル時の定数にします。