将枚举作为浮点数传递

时间:2012-11-26 19:34:15

标签: c++ enums

我有一个关于枚举和浮点数的问题。 我试图通过枚举作为浮点数这可能吗?

以下是代码大纲:

enum
{
    none = 0,
    small,
    medium,
    large, 
} enumSize;

class size
{
    float footsize = 0.0; 
}

void setSize(size &Size, float value)
{
    Size.footsize = value; 
}

int main()
{ 
    size Size; 
    setSize(Size, enumSize); 
}

但是我不能调用setSize(Size,enumSize),因为据我所知,枚举只能是整数并且不能被转换为浮点数?如果是这种情况,有没有办法让我的当前设置浮动?

如果我的布局有点混乱让我知道,我会尽力解决任何困惑。

2 个答案:

答案 0 :(得分:4)

当然,整数可以转换为浮点数,但枚举不适合这种工具。只需使用const float s。

顺便说一句,您的代码也不会出于其他几个原因进行编译。

答案 1 :(得分:1)

不涉及任何投射,只是转换。普通枚举是整数值,当您将其中一个传递给一个带浮点值的函数时,该值将转换为float。

enum enumSize {
    none,
    small,
    medium,
    large
};

void f(float);

void g() {
    f(small);
}