问问题
1045 次
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 回答