Gri*_*fin 7 c++ struct enumeration class
仅仅因为我不知道在我的c ++书籍或谷歌上究竟在哪里查找.我如何在类中实际定义一些枚举(在本例中{ left=1, right=2, top=3, bottom=4 }).我希望能够将此枚举作为参数传递给成员函数而不是整数,因此在外部使用枚举...
有没有办法可以做到这一点,还是有更好的方法我可以只针对该类进行枚举?
这是不起作用的代码,enum mySprite::<unamed> myySprite::side member mySprite "mySprite::side" is not a type name出于某种原因说:
class mySprite : public sf::Sprite
{
public:
    enum{left=1, right=2, top=3, bottom=4} side;
    float GetSide(side aSide){
        switch(aSide){
            // do stuff
        }
    };
};
让代码工作所需的最简单的更改是:
class mySprite : public sf::Sprite
{
public:
    enum side{ left=1, right=2, top=3, bottom=4 };
    float GetSide(side aSide)
    {
        switch(aSide)
        {
            // do stuff
            // add breaks; as appropriate
            case left:
            case right:
            case top:
            case bottom:
        }
    }
};
你也可以这样做:
    typedef enum {left = 1, right, top, bottom} side;
这意味着为您的mySprite类定义一个匿名枚举类型,并使side别名有效地完成与上面代码相同的操作.对于简洁性,只需要为第一个枚举值分配一个起始整数.除非您明确指定其他值,否则在该点之后的所有值都被理解为每次递增1.
| 归档时间: | 
 | 
| 查看次数: | 13022 次 | 
| 最近记录: |