在类树中使用动态转换进行动态转换是否可以接受?
对于大学作业,我正在构建一个类结构,其中部分包含几个 Pixel 类,每个类都使用特定的颜色空间(例如 8 位 GreyScale、24 位 RGB 等) )。 大部分工…
为什么存在dynamic_cast?
可能的重复: 常规演员表、static_cast 与dynamic_cast 我了解了 static_cast 如何进行通过这个问题起作用。 为什么它很重要在这里使用static_cast而…
为什么仅允许多态类进行从基到派生的动态转换
可能的重复: 常见问题解答:为什么只有当类至少有 1 个虚拟方法时,dynamic_cast 才起作用? 我读过,在C++中,在一组类的层次结构中执行动态强制转…
C++强制转换失败时的dynamic_cast行为
如果转换涉及指针,则 dynamic_cast 计算结果为 NULL,但如果转换涉及引用类型,则抛出 bad_cast 异常。 为什么会有这种行为差异? 谢谢…
使用模板动态转换类层次结构
在我的项目中,如果我将基类Base_Dialog定义为非模板,然后尝试在already_exists_中分配“调用者”,它会按预期的方式工作,但如果我将Base_Dialog作…
如何摆脱这里的dynamic_cast?
我正在为我的游戏制作一个简单的图形引擎。 这是接口部分: class Texture { ... }; class DrawContext { virtual void set_texture(Texture* texture…
动态转换为 void 指针有实际用途吗?
在 C++ 中,T q =dynamic_cast(p); 构造将指针 p 执行运行时强制转换为其他指针类型 T > 必须出现在 *p 动态类型的继承层次结构中才能成功。一切都很…
禁用 RTTI 的动态广播
我很想知道在禁用 RTTI 的情况下使用动态转换编译代码时会发生什么 (在 GCC 上使用 -fno-rtti 或在 Visual Studio 上使用 /GR-)。编译器是否“回退…
C++映射唯一类并从值中提取子类
新 C++ 程序员来了。 我有以下地图定义: typedef std::map MapType; MapType my_map 选项是我创建的唯一类。我实际上从未将 Option 类本身添加到我的…
动态转换还是函数重载?
考虑以下抽象类: class Abstract { public: // ... virtual bool operator==(const Abstract& rhs) const = 0; // ... }; 现在假设我从这个抽象类创…
在生产代码中删除dynamic_casts是否安全?
dynamic_cast 速度较慢,但比 static_cast 更安全(当然,当与对象层次结构一起使用时)。我的问题是,在我在调试代码中确保所有(动态)强制转换…
如何确定非多态类型的 mixin 模板的类型兼容性
如果我有一个混合定义为... template class Mixin : public T { // mixin methods and members }; ...并用 T 声明它是一个非多态类... Mixin mixin; .…
从函数返回后丢失 RTTI 信息
给定一个类和子类: class Event {...} class Note : public Event {...} 注释被克隆并存储在函数 f() 内的指针中。类型信息保留在指针中,可以通过dy…