-2
4

3 に答える 3

2

簡単な質問: 列挙型の値を構造体に変換するにはどうすればよいですか?

簡単な答え: 適切なコンストラクターがないため、方法はありません。

あなたの構造体にはメンバーがなく、型 ( enum) しかないので、何をしたいのかわかりません。

于 2013-08-02T11:08:27.693 に答える
2

コンストラクターを次のように宣言すると、

BarEnc(BarEnc::Scheme scheme);

BarEncコンストラクターが引数として構造体を受け取ることをコンパイラーに伝えます。そのため、構造体ではなく列挙体であるため、列挙値を渡すことはできません。


この場合、列挙を定義するためだけに別の構造体を使用する必要はありません。周囲のクラスで直接宣言できます。

class BarEnc {
public:
    enum eScheme {
        ADJ1M2,
        ADJ3M6
    };

    BarEnc(eShceme scheme);
};

次に、BarEncオブジェクトを作成するときに、列挙値を渡します。

BarEnc barenc(BarEnc::eScheme::ADJ1M2);
于 2013-08-02T11:09:48.267 に答える
0

パラメータとして構造体を使用できます。しかしBarEnc::Scheme、実際には構造体にはメンバーがありません。

const 値BarEnc::Scheme::ADJ3M6の型が のBarEnc::Scheme::eScheme場合、構造体に自動変換できません。

于 2013-08-02T11:09:29.797 に答える