-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 valueBarEnc::Scheme::ADJ3M6的类型是BarEnc::Scheme::eScheme,它不能自动转换为结构。

于 2013-08-02T11:09:29.797 回答