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
}
};
};
Run Code Online (Sandbox Code Playgroud)
让代码工作所需的最简单的更改是:
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:
}
}
};
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
typedef enum {left = 1, right, top, bottom} side;
Run Code Online (Sandbox Code Playgroud)
这意味着为您的mySprite类定义一个匿名枚举类型,并使side别名有效地完成与上面代码相同的操作.对于简洁性,只需要为第一个枚举值分配一个起始整数.除非您明确指定其他值,否则在该点之后的所有值都被理解为每次递增1.
| 归档时间: |
|
| 查看次数: |
13022 次 |
| 最近记录: |