我对 dynamic_casting 做了一些研究,我读到它创建了一个叫做 RTTI 的东西,它在启动时也被加载到 RAM 中。我认为在某些平台上也不支持此功能。所以我想知道是否有任何好的解决方案来避免它。
假设我有 Statement 类
class Statement
{
std::list<Operand*> operands;
};
操作数是一个具有更多子类的类,如内存地址、寄存器等。(有些人想知道,我正在尝试制作一个汇编程序。:P
我不能使用 dynamic_cast 进行向下转换,如果可以的话,这也很糟糕。但是如果我向 Operand 添加一个枚举,它定义了它的类型,所以我可以使用它的类型来向下转换 static_cast。
我可以使它成为一个常量,并在每个子类的构造函数中定义它,对吗?
我期待着大家的想法。
基督教