4

私はそのようなことをしようとしています:

//stack.h

#ifndef STACK_H_INCLUDED
#define STACK_H_INCLUDED
#include <vector>

struct CharStack {
    int sp;
    std::vector<char> data(87);
} S;

しかし、次のようなエラーが発生します。

error: expected identifier before numeric constant
error: expected ',' or '...' before numeric constant

なぜそれが起こるのですか?動的な長さのベクトルを作成したい場合は問題なさそうです

4

3 に答える 3

8

構造体 (またはクラス) でオブジェクトを構築するには、コンストラクターを作成する必要があります。このような

struct CharStack {
    CharStack() : data(87) {}
    int sp;
    std::vector<char> data;
} S;

それはまさにC++の構文です。

于 2013-09-13T16:15:35.900 に答える