Rao*_*Rao 1 c# c++ polymorphism rtti
我在C#编写了这个代码,并且想到的最快的解决方案是使用"as"或"is"关键字.我开始想知道如何在C++(没有RTTI)中整齐地实现它......甚至在没有上述关键字的C#中也是如此.
这是问题(简化):
有一个类Command包含一个所谓的"令牌"流.
class Command
{
public List<Token> Toks {get; set;}
//...
}
Run Code Online (Sandbox Code Playgroud)
令牌可以(当前)是"关键字"或"游戏对象".
class Token
{
//nothing in here :(
}
class KWToken : Token
{
public List<string> Synonyms {get; set;}
}
class GOToken : Token
{
}
Run Code Online (Sandbox Code Playgroud)
后来,我想循环遍历一个Command对象的Tokens 列表,并根据Token存储的类型做事.
在这种情况下的棘手是KWToken对象包含List我需要的一个相关字符串.
当然,如前所述,C#中的简单解决方案将使用"is"或"as"关键字.
我想到了一些不那么性感的方法.
有谁有漂亮的想法?
编辑
(删除打印示例,因为它似乎有误导性)
KWToken对象中的同义词列表将通过关联的Command对象在许多地方访问.不只是一次打印它们,因为我可能暗示我的例子.
| 归档时间: |
|
| 查看次数: |
863 次 |
| 最近记录: |