【发布时间】:2015-09-02 15:09:07
【问题描述】:
我如何组织枚举,以便每个枚举条目都可以有参数,就像我在 Haxe 中可以做的那样,例如:
enum GraphicAct {
ClearScreen;
MoveTo(x:Float, y:Float);
LineTo(x:Float, y:Float);
FillColor(color:Int);
EndFill;
}
function main(){
var actions:Array<GraphicAct>;
actions.push(ClearScreen);
actions.push(FillColor(0xaaffff));
actions.push(MoveTo(100, 100));
actions.push(LineTo(200, 100));
actions.push(LineTo(100, 200));
actions.push(EndFill);
for(act in actions){
switch(act){
case ClearScreen: // do clear screen here...
case MoveTo(x, y): // move position
case LineTo(x, y): // move position
}
}
}
据我所知,C++ 仅支持不带参数的枚举条目,例如“ClearScreen”和“EndFill”,但在这种情况下,我如何在 C++ 中组织命令序列,就像我在示例中使用图形命令所做的那样?
【问题讨论】:
-
为什么要将它作为枚举?你可以通过
GraphicsAct基类得到你想要的,然后使用多态
标签: c++ enums enumeration