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…
检查可以是非多态类型的模板类的强制转换(如dynamic_cast)
我的类中有一个模板成员,我想知道该成员的类是否继承自特定类。 class BaseClass; template class MyClass { T* my_member; public: void function()…
“this”的dynamic_cast构造函数内部
这个问题与这个问题非常相似为什么我不能dynamic_cast在多重继承期间“横向”?,除了强制转换确实有效 - 只是不在构造函数内部。 头: class A { pub…
共享库中模板化类和dynamic_cast的显式实例化
今天我遇到了一个似乎无法解决的问题。我正在编译一个共享库,其中包括一个模板类(Derived,其基为Base)和该类的一些显式实例化。我希望库用户从这…
C++:“...不是多态类型”使用 boost::dynamic_pointer_cast 时
为什么我会收到以下代码的以下错误? 1>C:\Libs\boost_1_44\boost/smart_ptr/shared_ptr.hpp(259): error C2683: 'dynamic_cast' : 'my_namespace::A'…
Dynamic_cast 的正确用例是什么?
我多次被告知(并且在实践中亲眼目睹),使用dynamic_cast通常意味着糟糕的设计,因为它可以而且应该被虚函数替换。 例如,考虑下面的代码: class Ba…
C++:比较基类和派生类的指针
我想要一些有关在类似这样的情况下比较指针时的最佳实践的信息: class Base { }; class Derived : public Base { }; Derived* d = new Derived; Base…