禁用 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…
dynamic_cast 失败怎么办?
根据我读到的内容,执行错误的运行时dynamic_cast可能会引发bad_cast异常或返回零。 如果你正在转换指针,它会返回零,这是否正确? 即: class Base …
在C++ 中使用dynamic_cast 的替代方案
我有这些课程: class Field{ public: int X; void validate(){ validator->validate(this); } void setValidator(Validator* v){ validator = v; } p…
什么时候需要dynamic_cast?
可能的重复: C++ 中的dynamic_cast 这两种将派生类分配给基类的方法有什么区别指针? Derived d1; Base *b1 = &d1 Derived d2; Base *b2 = dynamic_…
C++将指针作为参数传递给引用时进行指针转换
我很好奇,是: bool State::operator<(const State* S) { return this->operator(S)); } 完全相同: bool State::operator<(const State* S) { retur…
types.CodeType() python 调用的参数是什么?
我目前正在尝试为 python 推出我自己的“marshal”代码,以便我可以将编译后的 python 代码存储在 Google App Engine 上,以动态方式提供脚本。正如大…
C++ 中的dynamic_cast 的真实示例
有人能给我一个真实世界的例子,说明需要dynamic_cast并且根本无法解决的情况吗?我能想到的例子通常可以通过双重调度来解决。 如果约束太强,那么通…
Dynamic_cast 到相同类型不检查对象的类型
我试图确定 T* 指针指向的对象是否真正是 T 对象,还是其他一些不相关的类型。我尝试了dynamic_cast,但是它并没有什么用,它返回指针本身而不是null…