2

我有一个关于枚举和浮点数的问题。我正在尝试将枚举作为浮点数传递,这可能吗?

这是代码的概要:

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) 因为据我所知枚举只能是整数并且不能被转换为浮点数?如果是这种情况,有没有办法让它在我当前的设置下浮动?

如果我的布局有点混乱,请告诉我,我会尽力解决任何混乱。

4

2 回答 2

4

当然,整数可以转换为浮点数,但枚举不是一个合适的工具。只需使用const floats。

顺便说一句,您的代码也由于其他几个原因无法编译。

于 2012-11-26T19:36:44.420 回答
1

没有涉及铸造,只是转换。普通枚举是整数值,当您将其中一个传递给采用浮点数的函数时,该值将转换为浮点数。

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

void f(float);

void g() {
    f(small);
}
于 2012-11-26T20:11:52.847 回答